arc: Don't generate dynamic relocation for non SEC_ALLOC sections
[deliverable/binutils-gdb.git] / opcodes / aarch64-dis-2.c
index cac71afb50e5685342170e1cdf9ac68c41c7d953..5772364a326d32565407a87d3b20e26e03d31edd 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is automatically generated by aarch64-gen.  Do not edit!  */
 /* This file is automatically generated by aarch64-gen.  Do not edit!  */
-/* Copyright (C) 2012-2018 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2020 Free Software Foundation, Inc.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
    Contributed by ARM Ltd.
 
    This file is part of the GNU opcodes library.
@@ -34,21 +34,32 @@ aarch64_opcode_lookup_1 (uint32_t word)
             {
               if (((word >> 24) & 0x1) == 0)
                 {
             {
               if (((word >> 24) & 0x1) == 0)
                 {
-                  if (((word >> 31) & 0x1) == 0)
+                  if (((word >> 28) & 0x1) == 0)
                     {
                       /* 33222222222211111111110000000000
                          10987654321098765432109876543210
                     {
                       /* 33222222222211111111110000000000
                          10987654321098765432109876543210
-                         0xxx0000xxxxxxxxxxxxxxxxxxxxxxxx
-                         adr.  */
-                      return 1172;
+                         xxx00000xxxxxxxxxxxxxxxxxxxxxxxx
+                         udf.  */
+                      return 754;
                     }
                   else
                     {
                     }
                   else
                     {
-                      /* 33222222222211111111110000000000
-                         10987654321098765432109876543210
-                         1xxx0000xxxxxxxxxxxxxxxxxxxxxxxx
-                         adrp.  */
-                      return 1173;
+                      if (((word >> 31) & 0x1) == 0)
+                        {
+                          /* 33222222222211111111110000000000
+                             10987654321098765432109876543210
+                             0xx10000xxxxxxxxxxxxxxxxxxxxxxxx
+                             adr.  */
+                          return 1187;
+                        }
+                      else
+                        {
+                          /* 33222222222211111111110000000000
+                             10987654321098765432109876543210
+                             1xx10000xxxxxxxxxxxxxxxxxxxxxxxx
+                             adrp.  */
+                          return 1188;
+                        }
                     }
                 }
               else
                     }
                 }
               else
@@ -115,7 +126,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0000100x000xxxxx0xxxxxxxxxxxxxxx
                                                  stxrb.  */
                                                  10987654321098765432109876543210
                                                  0000100x000xxxxx0xxxxxxxxxxxxxxx
                                                  stxrb.  */
-                                              return 927;
+                                              return 937;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -123,7 +134,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0100100x000xxxxx0xxxxxxxxxxxxxxx
                                                  stxrh.  */
                                                  10987654321098765432109876543210
                                                  0100100x000xxxxx0xxxxxxxxxxxxxxx
                                                  stxrh.  */
-                                              return 933;
+                                              return 943;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -132,7 +143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x000xxxxx0xxxxxxxxxxxxxxx
                                              stxr.  */
                                              10987654321098765432109876543210
                                              1x00100x000xxxxx0xxxxxxxxxxxxxxx
                                              stxr.  */
-                                          return 939;
+                                          return 949;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -143,7 +154,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              0x00100x001xxxxx0xxxxxxxxxxxxxxx
                                              casp.  */
                                              10987654321098765432109876543210
                                              0x00100x001xxxxx0xxxxxxxxxxxxxxx
                                              casp.  */
-                                          return 1007;
+                                          return 1022;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -151,7 +162,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x001xxxxx0xxxxxxxxxxxxxxx
                                              stxp.  */
                                              10987654321098765432109876543210
                                              1x00100x001xxxxx0xxxxxxxxxxxxxxx
                                              stxp.  */
-                                          return 941;
+                                          return 951;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -167,7 +178,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0000100x000xxxxx1xxxxxxxxxxxxxxx
                                                  stlxrb.  */
                                                  10987654321098765432109876543210
                                                  0000100x000xxxxx1xxxxxxxxxxxxxxx
                                                  stlxrb.  */
-                                              return 928;
+                                              return 938;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -175,7 +186,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0100100x000xxxxx1xxxxxxxxxxxxxxx
                                                  stlxrh.  */
                                                  10987654321098765432109876543210
                                                  0100100x000xxxxx1xxxxxxxxxxxxxxx
                                                  stlxrh.  */
-                                              return 934;
+                                              return 944;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -184,7 +195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x000xxxxx1xxxxxxxxxxxxxxx
                                              stlxr.  */
                                              10987654321098765432109876543210
                                              1x00100x000xxxxx1xxxxxxxxxxxxxxx
                                              stlxr.  */
-                                          return 940;
+                                          return 950;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -195,7 +206,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              0x00100x001xxxxx1xxxxxxxxxxxxxxx
                                              caspl.  */
                                              10987654321098765432109876543210
                                              0x00100x001xxxxx1xxxxxxxxxxxxxxx
                                              caspl.  */
-                                          return 1009;
+                                          return 1024;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -203,18 +214,29 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x001xxxxx1xxxxxxxxxxxxxxx
                                              stlxp.  */
                                              10987654321098765432109876543210
                                              1x00100x001xxxxx1xxxxxxxxxxxxxxx
                                              stlxp.  */
-                                          return 942;
+                                          return 952;
                                         }
                                     }
                                 }
                             }
                           else
                             {
                                         }
                                     }
                                 }
                             }
                           else
                             {
-                              /* 33222222222211111111110000000000
-                                 10987654321098765432109876543210
-                                 xx10100x00xxxxxxxxxxxxxxxxxxxxxx
-                                 stnp.  */
-                              return 958;
+                              if (((word >> 30) & 0x1) == 0)
+                                {
+                                  /* 33222222222211111111110000000000
+                                     10987654321098765432109876543210
+                                     x010100x00xxxxxxxxxxxxxxxxxxxxxx
+                                     stnp.  */
+                                  return 971;
+                                }
+                              else
+                                {
+                                  /* 33222222222211111111110000000000
+                                     10987654321098765432109876543210
+                                     x110100x00xxxxxxxxxxxxxxxxxxxxxx
+                                     stgp.  */
+                                  return 980;
+                                }
                             }
                         }
                       else
                             }
                         }
                       else
@@ -231,7 +253,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              0x00100x100xxxxx0xxxxxxxxxxxxxxx
                                              stllrb.  */
                                              10987654321098765432109876543210
                                              0x00100x100xxxxx0xxxxxxxxxxxxxxx
                                              stllrb.  */
-                                          return 956;
+                                          return 969;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -239,7 +261,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x100xxxxx0xxxxxxxxxxxxxxx
                                              stllr.  */
                                              10987654321098765432109876543210
                                              1x00100x100xxxxx0xxxxxxxxxxxxxxx
                                              stllr.  */
-                                          return 955;
+                                          return 968;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -252,7 +274,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0000100x101xxxxx0xxxxxxxxxxxxxxx
                                                  casb.  */
                                                  10987654321098765432109876543210
                                                  0000100x101xxxxx0xxxxxxxxxxxxxxx
                                                  casb.  */
-                                              return 995;
+                                              return 1010;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -260,7 +282,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0100100x101xxxxx0xxxxxxxxxxxxxxx
                                                  cash.  */
                                                  10987654321098765432109876543210
                                                  0100100x101xxxxx0xxxxxxxxxxxxxxx
                                                  cash.  */
-                                              return 996;
+                                              return 1011;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -269,7 +291,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x101xxxxx0xxxxxxxxxxxxxxx
                                              cas.  */
                                              10987654321098765432109876543210
                                              1x00100x101xxxxx0xxxxxxxxxxxxxxx
                                              cas.  */
-                                          return 997;
+                                          return 1012;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -285,7 +307,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0000100x100xxxxx1xxxxxxxxxxxxxxx
                                                  stlrb.  */
                                                  10987654321098765432109876543210
                                                  0000100x100xxxxx1xxxxxxxxxxxxxxx
                                                  stlrb.  */
-                                              return 931;
+                                              return 941;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -293,7 +315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0100100x100xxxxx1xxxxxxxxxxxxxxx
                                                  stlrh.  */
                                                  10987654321098765432109876543210
                                                  0100100x100xxxxx1xxxxxxxxxxxxxxx
                                                  stlrh.  */
-                                              return 937;
+                                              return 947;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -302,7 +324,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x100xxxxx1xxxxxxxxxxxxxxx
                                              stlr.  */
                                              10987654321098765432109876543210
                                              1x00100x100xxxxx1xxxxxxxxxxxxxxx
                                              stlr.  */
-                                          return 947;
+                                          return 957;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -315,7 +337,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0000100x101xxxxx1xxxxxxxxxxxxxxx
                                                  caslb.  */
                                                  10987654321098765432109876543210
                                                  0000100x101xxxxx1xxxxxxxxxxxxxxx
                                                  caslb.  */
-                                              return 999;
+                                              return 1014;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -323,7 +345,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0100100x101xxxxx1xxxxxxxxxxxxxxx
                                                  caslh.  */
                                                  10987654321098765432109876543210
                                                  0100100x101xxxxx1xxxxxxxxxxxxxxx
                                                  caslh.  */
-                                              return 1002;
+                                              return 1017;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -332,18 +354,29 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x101xxxxx1xxxxxxxxxxxxxxx
                                              casl.  */
                                              10987654321098765432109876543210
                                              1x00100x101xxxxx1xxxxxxxxxxxxxxx
                                              casl.  */
-                                          return 1005;
+                                          return 1020;
                                         }
                                     }
                                 }
                             }
                           else
                             {
                                         }
                                     }
                                 }
                             }
                           else
                             {
-                              /* 33222222222211111111110000000000
-                                 10987654321098765432109876543210
-                                 xx10100x10xxxxxxxxxxxxxxxxxxxxxx
-                                 stp.  */
-                              return 967;
+                              if (((word >> 30) & 0x1) == 0)
+                                {
+                                  /* 33222222222211111111110000000000
+                                     10987654321098765432109876543210
+                                     x010100x10xxxxxxxxxxxxxxxxxxxxxx
+                                     stp.  */
+                                  return 981;
+                                }
+                              else
+                                {
+                                  /* 33222222222211111111110000000000
+                                     10987654321098765432109876543210
+                                     x110100x10xxxxxxxxxxxxxxxxxxxxxx
+                                     stgp.  */
+                                  return 986;
+                                }
                             }
                         }
                     }
                             }
                         }
                     }
@@ -365,7 +398,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0000100x010xxxxx0xxxxxxxxxxxxxxx
                                                  ldxrb.  */
                                                  10987654321098765432109876543210
                                                  0000100x010xxxxx0xxxxxxxxxxxxxxx
                                                  ldxrb.  */
-                                              return 929;
+                                              return 939;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -373,7 +406,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0100100x010xxxxx0xxxxxxxxxxxxxxx
                                                  ldxrh.  */
                                                  10987654321098765432109876543210
                                                  0100100x010xxxxx0xxxxxxxxxxxxxxx
                                                  ldxrh.  */
-                                              return 935;
+                                              return 945;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -382,7 +415,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x010xxxxx0xxxxxxxxxxxxxxx
                                              ldxr.  */
                                              10987654321098765432109876543210
                                              1x00100x010xxxxx0xxxxxxxxxxxxxxx
                                              ldxr.  */
-                                          return 943;
+                                          return 953;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -393,7 +426,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              0x00100x011xxxxx0xxxxxxxxxxxxxxx
                                              caspa.  */
                                              10987654321098765432109876543210
                                              0x00100x011xxxxx0xxxxxxxxxxxxxxx
                                              caspa.  */
-                                          return 1008;
+                                          return 1023;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -401,7 +434,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x011xxxxx0xxxxxxxxxxxxxxx
                                              ldxp.  */
                                              10987654321098765432109876543210
                                              1x00100x011xxxxx0xxxxxxxxxxxxxxx
                                              ldxp.  */
-                                          return 945;
+                                          return 955;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -417,7 +450,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0000100x010xxxxx1xxxxxxxxxxxxxxx
                                                  ldaxrb.  */
                                                  10987654321098765432109876543210
                                                  0000100x010xxxxx1xxxxxxxxxxxxxxx
                                                  ldaxrb.  */
-                                              return 930;
+                                              return 940;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -425,7 +458,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0100100x010xxxxx1xxxxxxxxxxxxxxx
                                                  ldaxrh.  */
                                                  10987654321098765432109876543210
                                                  0100100x010xxxxx1xxxxxxxxxxxxxxx
                                                  ldaxrh.  */
-                                              return 936;
+                                              return 946;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -434,7 +467,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x010xxxxx1xxxxxxxxxxxxxxx
                                              ldaxr.  */
                                              10987654321098765432109876543210
                                              1x00100x010xxxxx1xxxxxxxxxxxxxxx
                                              ldaxr.  */
-                                          return 944;
+                                          return 954;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -445,7 +478,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              0x00100x011xxxxx1xxxxxxxxxxxxxxx
                                              caspal.  */
                                              10987654321098765432109876543210
                                              0x00100x011xxxxx1xxxxxxxxxxxxxxx
                                              caspal.  */
-                                          return 1010;
+                                          return 1025;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -453,7 +486,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x011xxxxx1xxxxxxxxxxxxxxx
                                              ldaxp.  */
                                              10987654321098765432109876543210
                                              1x00100x011xxxxx1xxxxxxxxxxxxxxx
                                              ldaxp.  */
-                                          return 946;
+                                          return 956;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -466,7 +499,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      x010100x01xxxxxxxxxxxxxxxxxxxxxx
                                      ldnp.  */
                                      10987654321098765432109876543210
                                      x010100x01xxxxxxxxxxxxxxxxxxxxxx
                                      ldnp.  */
-                                  return 959;
+                                  return 972;
                                 }
                               else
                                 {
                                 }
                               else
                                 {
@@ -474,7 +507,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      x110100x01xxxxxxxxxxxxxxxxxxxxxx
                                      ldpsw.  */
                                      10987654321098765432109876543210
                                      x110100x01xxxxxxxxxxxxxxxxxxxxxx
                                      ldpsw.  */
-                                  return 966;
+                                  return 979;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -494,7 +527,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0000100x110xxxxx0xxxxxxxxxxxxxxx
                                                  ldlarb.  */
                                                  10987654321098765432109876543210
                                                  0000100x110xxxxx0xxxxxxxxxxxxxxx
                                                  ldlarb.  */
-                                              return 953;
+                                              return 966;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -502,7 +535,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0100100x110xxxxx0xxxxxxxxxxxxxxx
                                                  ldlarh.  */
                                                  10987654321098765432109876543210
                                                  0100100x110xxxxx0xxxxxxxxxxxxxxx
                                                  ldlarh.  */
-                                              return 954;
+                                              return 967;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -511,7 +544,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x110xxxxx0xxxxxxxxxxxxxxx
                                              ldlar.  */
                                              10987654321098765432109876543210
                                              1x00100x110xxxxx0xxxxxxxxxxxxxxx
                                              ldlar.  */
-                                          return 952;
+                                          return 965;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -524,7 +557,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0000100x111xxxxx0xxxxxxxxxxxxxxx
                                                  casab.  */
                                                  10987654321098765432109876543210
                                                  0000100x111xxxxx0xxxxxxxxxxxxxxx
                                                  casab.  */
-                                              return 998;
+                                              return 1013;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -532,7 +565,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0100100x111xxxxx0xxxxxxxxxxxxxxx
                                                  casah.  */
                                                  10987654321098765432109876543210
                                                  0100100x111xxxxx0xxxxxxxxxxxxxxx
                                                  casah.  */
-                                              return 1001;
+                                              return 1016;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -541,7 +574,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x111xxxxx0xxxxxxxxxxxxxxx
                                              casa.  */
                                              10987654321098765432109876543210
                                              1x00100x111xxxxx0xxxxxxxxxxxxxxx
                                              casa.  */
-                                          return 1004;
+                                          return 1019;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -557,7 +590,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0000100x110xxxxx1xxxxxxxxxxxxxxx
                                                  ldarb.  */
                                                  10987654321098765432109876543210
                                                  0000100x110xxxxx1xxxxxxxxxxxxxxx
                                                  ldarb.  */
-                                              return 932;
+                                              return 942;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -565,7 +598,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0100100x110xxxxx1xxxxxxxxxxxxxxx
                                                  ldarh.  */
                                                  10987654321098765432109876543210
                                                  0100100x110xxxxx1xxxxxxxxxxxxxxx
                                                  ldarh.  */
-                                              return 938;
+                                              return 948;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -574,7 +607,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x110xxxxx1xxxxxxxxxxxxxxx
                                              ldar.  */
                                              10987654321098765432109876543210
                                              1x00100x110xxxxx1xxxxxxxxxxxxxxx
                                              ldar.  */
-                                          return 948;
+                                          return 958;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -587,7 +620,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0000100x111xxxxx1xxxxxxxxxxxxxxx
                                                  casalb.  */
                                                  10987654321098765432109876543210
                                                  0000100x111xxxxx1xxxxxxxxxxxxxxx
                                                  casalb.  */
-                                              return 1000;
+                                              return 1015;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -595,7 +628,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  0100100x111xxxxx1xxxxxxxxxxxxxxx
                                                  casalh.  */
                                                  10987654321098765432109876543210
                                                  0100100x111xxxxx1xxxxxxxxxxxxxxx
                                                  casalh.  */
-                                              return 1003;
+                                              return 1018;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -604,7 +637,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x00100x111xxxxx1xxxxxxxxxxxxxxx
                                              casal.  */
                                              10987654321098765432109876543210
                                              1x00100x111xxxxx1xxxxxxxxxxxxxxx
                                              casal.  */
-                                          return 1006;
+                                          return 1021;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -617,7 +650,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      x010100x11xxxxxxxxxxxxxxxxxxxxxx
                                      ldp.  */
                                      10987654321098765432109876543210
                                      x010100x11xxxxxxxxxxxxxxxxxxxxxx
                                      ldp.  */
-                                  return 968;
+                                  return 982;
                                 }
                               else
                                 {
                                 }
                               else
                                 {
@@ -625,7 +658,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      x110100x11xxxxxxxxxxxxxxxxxxxxxx
                                      ldpsw.  */
                                      10987654321098765432109876543210
                                      x110100x11xxxxxxxxxxxxxxxxxxxxxx
                                      ldpsw.  */
-                                  return 971;
+                                  return 985;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -643,7 +676,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  0x011000xxxxxxxxxxxxxxxxxxxxxxxx
                                  ldr.  */
                                  10987654321098765432109876543210
                                  0x011000xxxxxxxxxxxxxxxxxxxxxxxx
                                  ldr.  */
-                              return 972;
+                              return 987;
                             }
                           else
                             {
                             }
                           else
                             {
@@ -653,7 +686,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      10011000xxxxxxxxxxxxxxxxxxxxxxxx
                                      ldrsw.  */
                                      10987654321098765432109876543210
                                      10011000xxxxxxxxxxxxxxxxxxxxxxxx
                                      ldrsw.  */
-                                  return 974;
+                                  return 989;
                                 }
                               else
                                 {
                                 }
                               else
                                 {
@@ -661,7 +694,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      11011000xxxxxxxxxxxxxxxxxxxxxxxx
                                      prfm.  */
                                      10987654321098765432109876543210
                                      11011000xxxxxxxxxxxxxxxxxxxxxxxx
                                      prfm.  */
-                                  return 975;
+                                  return 990;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -685,7 +718,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00111000000xxxxxxxxx00xxxxxxxxxx
                                                          sturb.  */
                                                          10987654321098765432109876543210
                                                          00111000000xxxxxxxxx00xxxxxxxxxx
                                                          sturb.  */
-                                                      return 913;
+                                                      return 922;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -693,7 +726,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01111000000xxxxxxxxx00xxxxxxxxxx
                                                          sturh.  */
                                                          10987654321098765432109876543210
                                                          01111000000xxxxxxxxx00xxxxxxxxxx
                                                          sturh.  */
-                                                      return 918;
+                                                      return 927;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -702,7 +735,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      1x111000000xxxxxxxxx00xxxxxxxxxx
                                                      stur.  */
                                                      10987654321098765432109876543210
                                                      1x111000000xxxxxxxxx00xxxxxxxxxx
                                                      stur.  */
-                                                  return 921;
+                                                  return 930;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -715,7 +748,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00111000010xxxxxxxxx00xxxxxxxxxx
                                                          ldurb.  */
                                                          10987654321098765432109876543210
                                                          00111000010xxxxxxxxx00xxxxxxxxxx
                                                          ldurb.  */
-                                                      return 914;
+                                                      return 923;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -723,7 +756,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01111000010xxxxxxxxx00xxxxxxxxxx
                                                          ldurh.  */
                                                          10987654321098765432109876543210
                                                          01111000010xxxxxxxxx00xxxxxxxxxx
                                                          ldurh.  */
-                                                      return 919;
+                                                      return 928;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -732,7 +765,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      1x111000010xxxxxxxxx00xxxxxxxxxx
                                                      ldur.  */
                                                      10987654321098765432109876543210
                                                      1x111000010xxxxxxxxx00xxxxxxxxxx
                                                      ldur.  */
-                                                  return 922;
+                                                  return 931;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -746,7 +779,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      001110001x0xxxxxxxxx00xxxxxxxxxx
                                                      ldursb.  */
                                                      10987654321098765432109876543210
                                                      001110001x0xxxxxxxxx00xxxxxxxxxx
                                                      ldursb.  */
-                                                  return 915;
+                                                  return 924;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -754,7 +787,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101110001x0xxxxxxxxx00xxxxxxxxxx
                                                      ldursw.  */
                                                      10987654321098765432109876543210
                                                      101110001x0xxxxxxxxx00xxxxxxxxxx
                                                      ldursw.  */
-                                                  return 923;
+                                                  return 932;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -765,7 +798,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      011110001x0xxxxxxxxx00xxxxxxxxxx
                                                      ldursh.  */
                                                      10987654321098765432109876543210
                                                      011110001x0xxxxxxxxx00xxxxxxxxxx
                                                      ldursh.  */
-                                                  return 920;
+                                                  return 929;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -773,7 +806,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111110001x0xxxxxxxxx00xxxxxxxxxx
                                                      prfum.  */
                                                      10987654321098765432109876543210
                                                      111110001x0xxxxxxxxx00xxxxxxxxxx
                                                      prfum.  */
-                                                  return 924;
+                                                  return 933;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -800,7 +833,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          00111000001xxxxx000000xxxxxxxxxx
                                                                          ldaddb.  */
                                                                          10987654321098765432109876543210
                                                                          00111000001xxxxx000000xxxxxxxxxx
                                                                          ldaddb.  */
-                                                                      return 1023;
+                                                                      return 1038;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -808,7 +841,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000001xxxxx000000xxxxxxxxxx
                                                                          ldaddh.  */
                                                                          10987654321098765432109876543210
                                                                          01111000001xxxxx000000xxxxxxxxxx
                                                                          ldaddh.  */
-                                                                      return 1024;
+                                                                      return 1039;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -817,7 +850,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      1x111000001xxxxx000000xxxxxxxxxx
                                                                      ldadd.  */
                                                                      10987654321098765432109876543210
                                                                      1x111000001xxxxx000000xxxxxxxxxx
                                                                      ldadd.  */
-                                                                  return 1025;
+                                                                  return 1040;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -830,7 +863,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          00111000101xxxxx000000xxxxxxxxxx
                                                                          ldaddab.  */
                                                                          10987654321098765432109876543210
                                                                          00111000101xxxxx000000xxxxxxxxxx
                                                                          ldaddab.  */
-                                                                      return 1026;
+                                                                      return 1041;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -838,7 +871,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000101xxxxx000000xxxxxxxxxx
                                                                          ldaddah.  */
                                                                          10987654321098765432109876543210
                                                                          01111000101xxxxx000000xxxxxxxxxx
                                                                          ldaddah.  */
-                                                                      return 1029;
+                                                                      return 1044;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -847,7 +880,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      1x111000101xxxxx000000xxxxxxxxxx
                                                                      ldadda.  */
                                                                      10987654321098765432109876543210
                                                                      1x111000101xxxxx000000xxxxxxxxxx
                                                                      ldadda.  */
-                                                                  return 1032;
+                                                                  return 1047;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -863,7 +896,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          00111000011xxxxx000000xxxxxxxxxx
                                                                          ldaddlb.  */
                                                                          10987654321098765432109876543210
                                                                          00111000011xxxxx000000xxxxxxxxxx
                                                                          ldaddlb.  */
-                                                                      return 1027;
+                                                                      return 1042;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -871,7 +904,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000011xxxxx000000xxxxxxxxxx
                                                                          ldaddlh.  */
                                                                          10987654321098765432109876543210
                                                                          01111000011xxxxx000000xxxxxxxxxx
                                                                          ldaddlh.  */
-                                                                      return 1030;
+                                                                      return 1045;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -880,7 +913,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      1x111000011xxxxx000000xxxxxxxxxx
                                                                      ldaddl.  */
                                                                      10987654321098765432109876543210
                                                                      1x111000011xxxxx000000xxxxxxxxxx
                                                                      ldaddl.  */
-                                                                  return 1033;
+                                                                  return 1048;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -893,7 +926,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          00111000111xxxxx000000xxxxxxxxxx
                                                                          ldaddalb.  */
                                                                          10987654321098765432109876543210
                                                                          00111000111xxxxx000000xxxxxxxxxx
                                                                          ldaddalb.  */
-                                                                      return 1028;
+                                                                      return 1043;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -901,7 +934,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000111xxxxx000000xxxxxxxxxx
                                                                          ldaddalh.  */
                                                                          10987654321098765432109876543210
                                                                          01111000111xxxxx000000xxxxxxxxxx
                                                                          ldaddalh.  */
-                                                                      return 1031;
+                                                                      return 1046;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -910,7 +943,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      1x111000111xxxxx000000xxxxxxxxxx
                                                                      ldaddal.  */
                                                                      10987654321098765432109876543210
                                                                      1x111000111xxxxx000000xxxxxxxxxx
                                                                      ldaddal.  */
-                                                                  return 1034;
+                                                                  return 1049;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -929,7 +962,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          00111000001xxxxx100000xxxxxxxxxx
                                                                          swpb.  */
                                                                          10987654321098765432109876543210
                                                                          00111000001xxxxx100000xxxxxxxxxx
                                                                          swpb.  */
-                                                                      return 1011;
+                                                                      return 1026;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -937,7 +970,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000001xxxxx100000xxxxxxxxxx
                                                                          swph.  */
                                                                          10987654321098765432109876543210
                                                                          01111000001xxxxx100000xxxxxxxxxx
                                                                          swph.  */
-                                                                      return 1012;
+                                                                      return 1027;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -946,7 +979,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      1x111000001xxxxx100000xxxxxxxxxx
                                                                      swp.  */
                                                                      10987654321098765432109876543210
                                                                      1x111000001xxxxx100000xxxxxxxxxx
                                                                      swp.  */
-                                                                  return 1013;
+                                                                  return 1028;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -959,7 +992,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          00111000101xxxxx100000xxxxxxxxxx
                                                                          swpab.  */
                                                                          10987654321098765432109876543210
                                                                          00111000101xxxxx100000xxxxxxxxxx
                                                                          swpab.  */
-                                                                      return 1014;
+                                                                      return 1029;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -967,7 +1000,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000101xxxxx100000xxxxxxxxxx
                                                                          swpah.  */
                                                                          10987654321098765432109876543210
                                                                          01111000101xxxxx100000xxxxxxxxxx
                                                                          swpah.  */
-                                                                      return 1017;
+                                                                      return 1032;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -976,7 +1009,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      1x111000101xxxxx100000xxxxxxxxxx
                                                                      swpa.  */
                                                                      10987654321098765432109876543210
                                                                      1x111000101xxxxx100000xxxxxxxxxx
                                                                      swpa.  */
-                                                                  return 1020;
+                                                                  return 1035;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -992,7 +1025,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          00111000011xxxxx100000xxxxxxxxxx
                                                                          swplb.  */
                                                                          10987654321098765432109876543210
                                                                          00111000011xxxxx100000xxxxxxxxxx
                                                                          swplb.  */
-                                                                      return 1015;
+                                                                      return 1030;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -1000,7 +1033,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000011xxxxx100000xxxxxxxxxx
                                                                          swplh.  */
                                                                          10987654321098765432109876543210
                                                                          01111000011xxxxx100000xxxxxxxxxx
                                                                          swplh.  */
-                                                                      return 1018;
+                                                                      return 1033;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -1009,7 +1042,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      1x111000011xxxxx100000xxxxxxxxxx
                                                                      swpl.  */
                                                                      10987654321098765432109876543210
                                                                      1x111000011xxxxx100000xxxxxxxxxx
                                                                      swpl.  */
-                                                                  return 1021;
+                                                                  return 1036;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1022,7 +1055,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          00111000111xxxxx100000xxxxxxxxxx
                                                                          swpalb.  */
                                                                          10987654321098765432109876543210
                                                                          00111000111xxxxx100000xxxxxxxxxx
                                                                          swpalb.  */
-                                                                      return 1016;
+                                                                      return 1031;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -1030,7 +1063,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000111xxxxx100000xxxxxxxxxx
                                                                          swpalh.  */
                                                                          10987654321098765432109876543210
                                                                          01111000111xxxxx100000xxxxxxxxxx
                                                                          swpalh.  */
-                                                                      return 1019;
+                                                                      return 1034;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -1039,7 +1072,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      1x111000111xxxxx100000xxxxxxxxxx
                                                                      swpal.  */
                                                                      10987654321098765432109876543210
                                                                      1x111000111xxxxx100000xxxxxxxxxx
                                                                      swpal.  */
-                                                                  return 1022;
+                                                                  return 1037;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -1061,7 +1094,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          00111000001xxxxx010000xxxxxxxxxx
                                                                          ldsmaxb.  */
                                                                          10987654321098765432109876543210
                                                                          00111000001xxxxx010000xxxxxxxxxx
                                                                          ldsmaxb.  */
-                                                                      return 1071;
+                                                                      return 1086;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -1069,7 +1102,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000001xxxxx010000xxxxxxxxxx
                                                                          ldsmaxh.  */
                                                                          10987654321098765432109876543210
                                                                          01111000001xxxxx010000xxxxxxxxxx
                                                                          ldsmaxh.  */
-                                                                      return 1072;
+                                                                      return 1087;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -1078,7 +1111,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      1x111000001xxxxx010000xxxxxxxxxx
                                                                      ldsmax.  */
                                                                      10987654321098765432109876543210
                                                                      1x111000001xxxxx010000xxxxxxxxxx
                                                                      ldsmax.  */
-                                                                  return 1073;
+                                                                  return 1088;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1091,7 +1124,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          00111000101xxxxx010000xxxxxxxxxx
                                                                          ldsmaxab.  */
                                                                          10987654321098765432109876543210
                                                                          00111000101xxxxx010000xxxxxxxxxx
                                                                          ldsmaxab.  */
-                                                                      return 1074;
+                                                                      return 1089;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -1099,7 +1132,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000101xxxxx010000xxxxxxxxxx
                                                                          ldsmaxah.  */
                                                                          10987654321098765432109876543210
                                                                          01111000101xxxxx010000xxxxxxxxxx
                                                                          ldsmaxah.  */
-                                                                      return 1077;
+                                                                      return 1092;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -1108,7 +1141,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      1x111000101xxxxx010000xxxxxxxxxx
                                                                      ldsmaxa.  */
                                                                      10987654321098765432109876543210
                                                                      1x111000101xxxxx010000xxxxxxxxxx
                                                                      ldsmaxa.  */
-                                                                  return 1080;
+                                                                  return 1095;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -1124,7 +1157,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          00111000011xxxxx010000xxxxxxxxxx
                                                                          ldsmaxlb.  */
                                                                          10987654321098765432109876543210
                                                                          00111000011xxxxx010000xxxxxxxxxx
                                                                          ldsmaxlb.  */
-                                                                      return 1075;
+                                                                      return 1090;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -1132,7 +1165,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000011xxxxx010000xxxxxxxxxx
                                                                          ldsmaxlh.  */
                                                                          10987654321098765432109876543210
                                                                          01111000011xxxxx010000xxxxxxxxxx
                                                                          ldsmaxlh.  */
-                                                                      return 1078;
+                                                                      return 1093;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -1141,7 +1174,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      1x111000011xxxxx010000xxxxxxxxxx
                                                                      ldsmaxl.  */
                                                                      10987654321098765432109876543210
                                                                      1x111000011xxxxx010000xxxxxxxxxx
                                                                      ldsmaxl.  */
-                                                                  return 1081;
+                                                                  return 1096;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1154,7 +1187,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          00111000111xxxxx010000xxxxxxxxxx
                                                                          ldsmaxalb.  */
                                                                          10987654321098765432109876543210
                                                                          00111000111xxxxx010000xxxxxxxxxx
                                                                          ldsmaxalb.  */
-                                                                      return 1076;
+                                                                      return 1091;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -1162,7 +1195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          01111000111xxxxx010000xxxxxxxxxx
                                                                          ldsmaxalh.  */
                                                                          10987654321098765432109876543210
                                                                          01111000111xxxxx010000xxxxxxxxxx
                                                                          ldsmaxalh.  */
-                                                                      return 1079;
+                                                                      return 1094;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -1171,7 +1204,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      1x111000111xxxxx010000xxxxxxxxxx
                                                                      ldsmaxal.  */
                                                                      10987654321098765432109876543210
                                                                      1x111000111xxxxx010000xxxxxxxxxx
                                                                      ldsmaxal.  */
-                                                                  return 1082;
+                                                                  return 1097;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -1186,7 +1219,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  00111000xx1xxxxx110000xxxxxxxxxx
                                                                  ldaprb.  */
                                                                  10987654321098765432109876543210
                                                                  00111000xx1xxxxx110000xxxxxxxxxx
                                                                  ldaprb.  */
-                                                              return 949;
+                                                              return 959;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -1194,7 +1227,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  01111000xx1xxxxx110000xxxxxxxxxx
                                                                  ldaprh.  */
                                                                  10987654321098765432109876543210
                                                                  01111000xx1xxxxx110000xxxxxxxxxx
                                                                  ldaprh.  */
-                                                              return 950;
+                                                              return 960;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1203,7 +1236,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              1x111000xx1xxxxx110000xxxxxxxxxx
                                                              ldapr.  */
                                                              10987654321098765432109876543210
                                                              1x111000xx1xxxxx110000xxxxxxxxxx
                                                              ldapr.  */
-                                                          return 951;
+                                                          return 961;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -1224,7 +1257,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000001xxxxxx01000xxxxxxxxxx
                                                                      ldeorb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000001xxxxxx01000xxxxxxxxxx
                                                                      ldeorb.  */
-                                                                  return 1047;
+                                                                  return 1062;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1232,7 +1265,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000001xxxxxx01000xxxxxxxxxx
                                                                      ldeorh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000001xxxxxx01000xxxxxxxxxx
                                                                      ldeorh.  */
-                                                                  return 1048;
+                                                                  return 1063;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1241,7 +1274,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000001xxxxxx01000xxxxxxxxxx
                                                                  ldeor.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000001xxxxxx01000xxxxxxxxxx
                                                                  ldeor.  */
-                                                              return 1049;
+                                                              return 1064;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1254,7 +1287,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000101xxxxxx01000xxxxxxxxxx
                                                                      ldeorab.  */
                                                                      10987654321098765432109876543210
                                                                      00111000101xxxxxx01000xxxxxxxxxx
                                                                      ldeorab.  */
-                                                                  return 1050;
+                                                                  return 1065;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1262,7 +1295,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000101xxxxxx01000xxxxxxxxxx
                                                                      ldeorah.  */
                                                                      10987654321098765432109876543210
                                                                      01111000101xxxxxx01000xxxxxxxxxx
                                                                      ldeorah.  */
-                                                                  return 1053;
+                                                                  return 1068;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1271,7 +1304,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000101xxxxxx01000xxxxxxxxxx
                                                                  ldeora.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000101xxxxxx01000xxxxxxxxxx
                                                                  ldeora.  */
-                                                              return 1056;
+                                                              return 1071;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1287,7 +1320,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000011xxxxxx01000xxxxxxxxxx
                                                                      ldeorlb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000011xxxxxx01000xxxxxxxxxx
                                                                      ldeorlb.  */
-                                                                  return 1051;
+                                                                  return 1066;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1295,7 +1328,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000011xxxxxx01000xxxxxxxxxx
                                                                      ldeorlh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000011xxxxxx01000xxxxxxxxxx
                                                                      ldeorlh.  */
-                                                                  return 1054;
+                                                                  return 1069;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1304,7 +1337,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000011xxxxxx01000xxxxxxxxxx
                                                                  ldeorl.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000011xxxxxx01000xxxxxxxxxx
                                                                  ldeorl.  */
-                                                              return 1057;
+                                                              return 1072;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1317,7 +1350,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000111xxxxxx01000xxxxxxxxxx
                                                                      ldeoralb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000111xxxxxx01000xxxxxxxxxx
                                                                      ldeoralb.  */
-                                                                  return 1052;
+                                                                  return 1067;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1325,7 +1358,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000111xxxxxx01000xxxxxxxxxx
                                                                      ldeoralh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000111xxxxxx01000xxxxxxxxxx
                                                                      ldeoralh.  */
-                                                                  return 1055;
+                                                                  return 1070;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1334,7 +1367,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000111xxxxxx01000xxxxxxxxxx
                                                                  ldeoral.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000111xxxxxx01000xxxxxxxxxx
                                                                  ldeoral.  */
-                                                              return 1058;
+                                                              return 1073;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1353,7 +1386,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000001xxxxxx11000xxxxxxxxxx
                                                                      ldumaxb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000001xxxxxx11000xxxxxxxxxx
                                                                      ldumaxb.  */
-                                                                  return 1095;
+                                                                  return 1110;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1361,7 +1394,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000001xxxxxx11000xxxxxxxxxx
                                                                      ldumaxh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000001xxxxxx11000xxxxxxxxxx
                                                                      ldumaxh.  */
-                                                                  return 1096;
+                                                                  return 1111;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1370,7 +1403,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000001xxxxxx11000xxxxxxxxxx
                                                                  ldumax.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000001xxxxxx11000xxxxxxxxxx
                                                                  ldumax.  */
-                                                              return 1097;
+                                                              return 1112;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1383,7 +1416,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000101xxxxxx11000xxxxxxxxxx
                                                                      ldumaxab.  */
                                                                      10987654321098765432109876543210
                                                                      00111000101xxxxxx11000xxxxxxxxxx
                                                                      ldumaxab.  */
-                                                                  return 1098;
+                                                                  return 1113;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1391,7 +1424,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000101xxxxxx11000xxxxxxxxxx
                                                                      ldumaxah.  */
                                                                      10987654321098765432109876543210
                                                                      01111000101xxxxxx11000xxxxxxxxxx
                                                                      ldumaxah.  */
-                                                                  return 1101;
+                                                                  return 1116;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1400,7 +1433,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000101xxxxxx11000xxxxxxxxxx
                                                                  ldumaxa.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000101xxxxxx11000xxxxxxxxxx
                                                                  ldumaxa.  */
-                                                              return 1104;
+                                                              return 1119;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1416,7 +1449,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000011xxxxxx11000xxxxxxxxxx
                                                                      ldumaxlb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000011xxxxxx11000xxxxxxxxxx
                                                                      ldumaxlb.  */
-                                                                  return 1099;
+                                                                  return 1114;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1424,7 +1457,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000011xxxxxx11000xxxxxxxxxx
                                                                      ldumaxlh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000011xxxxxx11000xxxxxxxxxx
                                                                      ldumaxlh.  */
-                                                                  return 1102;
+                                                                  return 1117;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1433,7 +1466,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000011xxxxxx11000xxxxxxxxxx
                                                                  ldumaxl.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000011xxxxxx11000xxxxxxxxxx
                                                                  ldumaxl.  */
-                                                              return 1105;
+                                                              return 1120;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1446,7 +1479,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000111xxxxxx11000xxxxxxxxxx
                                                                      ldumaxalb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000111xxxxxx11000xxxxxxxxxx
                                                                      ldumaxalb.  */
-                                                                  return 1100;
+                                                                  return 1115;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1454,7 +1487,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000111xxxxxx11000xxxxxxxxxx
                                                                      ldumaxalh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000111xxxxxx11000xxxxxxxxxx
                                                                      ldumaxalh.  */
-                                                                  return 1103;
+                                                                  return 1118;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1463,7 +1496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000111xxxxxx11000xxxxxxxxxx
                                                                  ldumaxal.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000111xxxxxx11000xxxxxxxxxx
                                                                  ldumaxal.  */
-                                                              return 1106;
+                                                              return 1121;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1488,7 +1521,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000001xxxxxx00100xxxxxxxxxx
                                                                      ldclrb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000001xxxxxx00100xxxxxxxxxx
                                                                      ldclrb.  */
-                                                                  return 1035;
+                                                                  return 1050;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1496,7 +1529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000001xxxxxx00100xxxxxxxxxx
                                                                      ldclrh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000001xxxxxx00100xxxxxxxxxx
                                                                      ldclrh.  */
-                                                                  return 1036;
+                                                                  return 1051;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1505,7 +1538,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000001xxxxxx00100xxxxxxxxxx
                                                                  ldclr.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000001xxxxxx00100xxxxxxxxxx
                                                                  ldclr.  */
-                                                              return 1037;
+                                                              return 1052;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1518,7 +1551,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000101xxxxxx00100xxxxxxxxxx
                                                                      ldclrab.  */
                                                                      10987654321098765432109876543210
                                                                      00111000101xxxxxx00100xxxxxxxxxx
                                                                      ldclrab.  */
-                                                                  return 1038;
+                                                                  return 1053;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1526,7 +1559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000101xxxxxx00100xxxxxxxxxx
                                                                      ldclrah.  */
                                                                      10987654321098765432109876543210
                                                                      01111000101xxxxxx00100xxxxxxxxxx
                                                                      ldclrah.  */
-                                                                  return 1041;
+                                                                  return 1056;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1535,7 +1568,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000101xxxxxx00100xxxxxxxxxx
                                                                  ldclra.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000101xxxxxx00100xxxxxxxxxx
                                                                  ldclra.  */
-                                                              return 1044;
+                                                              return 1059;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1551,7 +1584,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000011xxxxxx00100xxxxxxxxxx
                                                                      ldclrlb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000011xxxxxx00100xxxxxxxxxx
                                                                      ldclrlb.  */
-                                                                  return 1039;
+                                                                  return 1054;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1559,7 +1592,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000011xxxxxx00100xxxxxxxxxx
                                                                      ldclrlh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000011xxxxxx00100xxxxxxxxxx
                                                                      ldclrlh.  */
-                                                                  return 1042;
+                                                                  return 1057;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1568,7 +1601,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000011xxxxxx00100xxxxxxxxxx
                                                                  ldclrl.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000011xxxxxx00100xxxxxxxxxx
                                                                  ldclrl.  */
-                                                              return 1045;
+                                                              return 1060;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1581,7 +1614,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000111xxxxxx00100xxxxxxxxxx
                                                                      ldclralb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000111xxxxxx00100xxxxxxxxxx
                                                                      ldclralb.  */
-                                                                  return 1040;
+                                                                  return 1055;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1589,7 +1622,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000111xxxxxx00100xxxxxxxxxx
                                                                      ldclralh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000111xxxxxx00100xxxxxxxxxx
                                                                      ldclralh.  */
-                                                                  return 1043;
+                                                                  return 1058;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1598,7 +1631,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000111xxxxxx00100xxxxxxxxxx
                                                                  ldclral.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000111xxxxxx00100xxxxxxxxxx
                                                                  ldclral.  */
-                                                              return 1046;
+                                                              return 1061;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1617,7 +1650,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000001xxxxxx10100xxxxxxxxxx
                                                                      ldsminb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000001xxxxxx10100xxxxxxxxxx
                                                                      ldsminb.  */
-                                                                  return 1083;
+                                                                  return 1098;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1625,7 +1658,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000001xxxxxx10100xxxxxxxxxx
                                                                      ldsminh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000001xxxxxx10100xxxxxxxxxx
                                                                      ldsminh.  */
-                                                                  return 1084;
+                                                                  return 1099;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1634,7 +1667,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000001xxxxxx10100xxxxxxxxxx
                                                                  ldsmin.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000001xxxxxx10100xxxxxxxxxx
                                                                  ldsmin.  */
-                                                              return 1085;
+                                                              return 1100;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1647,7 +1680,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000101xxxxxx10100xxxxxxxxxx
                                                                      ldsminab.  */
                                                                      10987654321098765432109876543210
                                                                      00111000101xxxxxx10100xxxxxxxxxx
                                                                      ldsminab.  */
-                                                                  return 1086;
+                                                                  return 1101;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1655,7 +1688,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000101xxxxxx10100xxxxxxxxxx
                                                                      ldsminah.  */
                                                                      10987654321098765432109876543210
                                                                      01111000101xxxxxx10100xxxxxxxxxx
                                                                      ldsminah.  */
-                                                                  return 1089;
+                                                                  return 1104;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1664,7 +1697,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000101xxxxxx10100xxxxxxxxxx
                                                                  ldsmina.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000101xxxxxx10100xxxxxxxxxx
                                                                  ldsmina.  */
-                                                              return 1092;
+                                                              return 1107;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1680,7 +1713,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000011xxxxxx10100xxxxxxxxxx
                                                                      ldsminlb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000011xxxxxx10100xxxxxxxxxx
                                                                      ldsminlb.  */
-                                                                  return 1087;
+                                                                  return 1102;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1688,7 +1721,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000011xxxxxx10100xxxxxxxxxx
                                                                      ldsminlh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000011xxxxxx10100xxxxxxxxxx
                                                                      ldsminlh.  */
-                                                                  return 1090;
+                                                                  return 1105;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1697,7 +1730,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000011xxxxxx10100xxxxxxxxxx
                                                                  ldsminl.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000011xxxxxx10100xxxxxxxxxx
                                                                  ldsminl.  */
-                                                              return 1093;
+                                                              return 1108;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1710,7 +1743,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000111xxxxxx10100xxxxxxxxxx
                                                                      ldsminalb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000111xxxxxx10100xxxxxxxxxx
                                                                      ldsminalb.  */
-                                                                  return 1088;
+                                                                  return 1103;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1718,7 +1751,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000111xxxxxx10100xxxxxxxxxx
                                                                      ldsminalh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000111xxxxxx10100xxxxxxxxxx
                                                                      ldsminalh.  */
-                                                                  return 1091;
+                                                                  return 1106;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1727,7 +1760,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000111xxxxxx10100xxxxxxxxxx
                                                                  ldsminal.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000111xxxxxx10100xxxxxxxxxx
                                                                  ldsminal.  */
-                                                              return 1094;
+                                                              return 1109;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1749,7 +1782,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000001xxxxxx01100xxxxxxxxxx
                                                                      ldsetb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000001xxxxxx01100xxxxxxxxxx
                                                                      ldsetb.  */
-                                                                  return 1059;
+                                                                  return 1074;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1757,7 +1790,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000001xxxxxx01100xxxxxxxxxx
                                                                      ldseth.  */
                                                                      10987654321098765432109876543210
                                                                      01111000001xxxxxx01100xxxxxxxxxx
                                                                      ldseth.  */
-                                                                  return 1060;
+                                                                  return 1075;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1766,7 +1799,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000001xxxxxx01100xxxxxxxxxx
                                                                  ldset.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000001xxxxxx01100xxxxxxxxxx
                                                                  ldset.  */
-                                                              return 1061;
+                                                              return 1076;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1779,7 +1812,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000101xxxxxx01100xxxxxxxxxx
                                                                      ldsetab.  */
                                                                      10987654321098765432109876543210
                                                                      00111000101xxxxxx01100xxxxxxxxxx
                                                                      ldsetab.  */
-                                                                  return 1062;
+                                                                  return 1077;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1787,7 +1820,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000101xxxxxx01100xxxxxxxxxx
                                                                      ldsetah.  */
                                                                      10987654321098765432109876543210
                                                                      01111000101xxxxxx01100xxxxxxxxxx
                                                                      ldsetah.  */
-                                                                  return 1065;
+                                                                  return 1080;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1796,7 +1829,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000101xxxxxx01100xxxxxxxxxx
                                                                  ldseta.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000101xxxxxx01100xxxxxxxxxx
                                                                  ldseta.  */
-                                                              return 1068;
+                                                              return 1083;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1812,7 +1845,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000011xxxxxx01100xxxxxxxxxx
                                                                      ldsetlb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000011xxxxxx01100xxxxxxxxxx
                                                                      ldsetlb.  */
-                                                                  return 1063;
+                                                                  return 1078;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1820,7 +1853,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000011xxxxxx01100xxxxxxxxxx
                                                                      ldsetlh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000011xxxxxx01100xxxxxxxxxx
                                                                      ldsetlh.  */
-                                                                  return 1066;
+                                                                  return 1081;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1829,7 +1862,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000011xxxxxx01100xxxxxxxxxx
                                                                  ldsetl.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000011xxxxxx01100xxxxxxxxxx
                                                                  ldsetl.  */
-                                                              return 1069;
+                                                              return 1084;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1842,7 +1875,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000111xxxxxx01100xxxxxxxxxx
                                                                      ldsetalb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000111xxxxxx01100xxxxxxxxxx
                                                                      ldsetalb.  */
-                                                                  return 1064;
+                                                                  return 1079;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1850,7 +1883,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000111xxxxxx01100xxxxxxxxxx
                                                                      ldsetalh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000111xxxxxx01100xxxxxxxxxx
                                                                      ldsetalh.  */
-                                                                  return 1067;
+                                                                  return 1082;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1859,7 +1892,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000111xxxxxx01100xxxxxxxxxx
                                                                  ldsetal.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000111xxxxxx01100xxxxxxxxxx
                                                                  ldsetal.  */
-                                                              return 1070;
+                                                              return 1085;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1878,7 +1911,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000001xxxxxx11100xxxxxxxxxx
                                                                      lduminb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000001xxxxxx11100xxxxxxxxxx
                                                                      lduminb.  */
-                                                                  return 1107;
+                                                                  return 1122;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1886,7 +1919,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000001xxxxxx11100xxxxxxxxxx
                                                                      lduminh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000001xxxxxx11100xxxxxxxxxx
                                                                      lduminh.  */
-                                                                  return 1108;
+                                                                  return 1123;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1895,7 +1928,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000001xxxxxx11100xxxxxxxxxx
                                                                  ldumin.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000001xxxxxx11100xxxxxxxxxx
                                                                  ldumin.  */
-                                                              return 1109;
+                                                              return 1124;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1908,7 +1941,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000101xxxxxx11100xxxxxxxxxx
                                                                      lduminab.  */
                                                                      10987654321098765432109876543210
                                                                      00111000101xxxxxx11100xxxxxxxxxx
                                                                      lduminab.  */
-                                                                  return 1110;
+                                                                  return 1125;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1916,7 +1949,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000101xxxxxx11100xxxxxxxxxx
                                                                      lduminah.  */
                                                                      10987654321098765432109876543210
                                                                      01111000101xxxxxx11100xxxxxxxxxx
                                                                      lduminah.  */
-                                                                  return 1113;
+                                                                  return 1128;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1925,7 +1958,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000101xxxxxx11100xxxxxxxxxx
                                                                  ldumina.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000101xxxxxx11100xxxxxxxxxx
                                                                  ldumina.  */
-                                                              return 1116;
+                                                              return 1131;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1941,7 +1974,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000011xxxxxx11100xxxxxxxxxx
                                                                      lduminlb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000011xxxxxx11100xxxxxxxxxx
                                                                      lduminlb.  */
-                                                                  return 1111;
+                                                                  return 1126;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1949,7 +1982,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000011xxxxxx11100xxxxxxxxxx
                                                                      lduminlh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000011xxxxxx11100xxxxxxxxxx
                                                                      lduminlh.  */
-                                                                  return 1114;
+                                                                  return 1129;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1958,7 +1991,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000011xxxxxx11100xxxxxxxxxx
                                                                  lduminl.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000011xxxxxx11100xxxxxxxxxx
                                                                  lduminl.  */
-                                                              return 1117;
+                                                              return 1132;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1971,7 +2004,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      00111000111xxxxxx11100xxxxxxxxxx
                                                                      lduminalb.  */
                                                                      10987654321098765432109876543210
                                                                      00111000111xxxxxx11100xxxxxxxxxx
                                                                      lduminalb.  */
-                                                                  return 1112;
+                                                                  return 1127;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -1979,7 +2012,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      01111000111xxxxxx11100xxxxxxxxxx
                                                                      lduminalh.  */
                                                                      10987654321098765432109876543210
                                                                      01111000111xxxxxx11100xxxxxxxxxx
                                                                      lduminalh.  */
-                                                                  return 1115;
+                                                                  return 1130;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1988,7 +2021,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x111000111xxxxxx11100xxxxxxxxxx
                                                                  lduminal.  */
                                                                  10987654321098765432109876543210
                                                                  1x111000111xxxxxx11100xxxxxxxxxx
                                                                  lduminal.  */
-                                                              return 1118;
+                                                              return 1133;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -2013,7 +2046,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00111000000xxxxxxxxx10xxxxxxxxxx
                                                          sttrb.  */
                                                          10987654321098765432109876543210
                                                          00111000000xxxxxxxxx10xxxxxxxxxx
                                                          sttrb.  */
-                                                      return 904;
+                                                      return 913;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -2021,7 +2054,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01111000000xxxxxxxxx10xxxxxxxxxx
                                                          sttrh.  */
                                                          10987654321098765432109876543210
                                                          01111000000xxxxxxxxx10xxxxxxxxxx
                                                          sttrh.  */
-                                                      return 907;
+                                                      return 916;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -2030,7 +2063,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      1x111000000xxxxxxxxx10xxxxxxxxxx
                                                      sttr.  */
                                                      10987654321098765432109876543210
                                                      1x111000000xxxxxxxxx10xxxxxxxxxx
                                                      sttr.  */
-                                                  return 910;
+                                                  return 919;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -2043,7 +2076,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00111000010xxxxxxxxx10xxxxxxxxxx
                                                          ldtrb.  */
                                                          10987654321098765432109876543210
                                                          00111000010xxxxxxxxx10xxxxxxxxxx
                                                          ldtrb.  */
-                                                      return 905;
+                                                      return 914;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -2051,7 +2084,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01111000010xxxxxxxxx10xxxxxxxxxx
                                                          ldtrh.  */
                                                          10987654321098765432109876543210
                                                          01111000010xxxxxxxxx10xxxxxxxxxx
                                                          ldtrh.  */
-                                                      return 908;
+                                                      return 917;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -2060,7 +2093,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      1x111000010xxxxxxxxx10xxxxxxxxxx
                                                      ldtr.  */
                                                      10987654321098765432109876543210
                                                      1x111000010xxxxxxxxx10xxxxxxxxxx
                                                      ldtr.  */
-                                                  return 911;
+                                                  return 920;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -2074,7 +2107,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      001110001x0xxxxxxxxx10xxxxxxxxxx
                                                      ldtrsb.  */
                                                      10987654321098765432109876543210
                                                      001110001x0xxxxxxxxx10xxxxxxxxxx
                                                      ldtrsb.  */
-                                                  return 906;
+                                                  return 915;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -2082,7 +2115,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101110001x0xxxxxxxxx10xxxxxxxxxx
                                                      ldtrsw.  */
                                                      10987654321098765432109876543210
                                                      101110001x0xxxxxxxxx10xxxxxxxxxx
                                                      ldtrsw.  */
-                                                  return 912;
+                                                  return 921;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -2091,7 +2124,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  x11110001x0xxxxxxxxx10xxxxxxxxxx
                                                  ldtrsh.  */
                                                  10987654321098765432109876543210
                                                  x11110001x0xxxxxxxxx10xxxxxxxxxx
                                                  ldtrsh.  */
-                                              return 909;
+                                              return 918;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -2109,7 +2142,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00111000001xxxxxxxxx10xxxxxxxxxx
                                                          strb.  */
                                                          10987654321098765432109876543210
                                                          00111000001xxxxxxxxx10xxxxxxxxxx
                                                          strb.  */
-                                                      return 892;
+                                                      return 901;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -2117,7 +2150,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01111000001xxxxxxxxx10xxxxxxxxxx
                                                          strh.  */
                                                          10987654321098765432109876543210
                                                          01111000001xxxxxxxxx10xxxxxxxxxx
                                                          strh.  */
-                                                      return 897;
+                                                      return 906;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -2126,7 +2159,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      1x111000001xxxxxxxxx10xxxxxxxxxx
                                                      str.  */
                                                      10987654321098765432109876543210
                                                      1x111000001xxxxxxxxx10xxxxxxxxxx
                                                      str.  */
-                                                  return 900;
+                                                  return 909;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -2139,7 +2172,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          00111000011xxxxxxxxx10xxxxxxxxxx
                                                          ldrb.  */
                                                          10987654321098765432109876543210
                                                          00111000011xxxxxxxxx10xxxxxxxxxx
                                                          ldrb.  */
-                                                      return 893;
+                                                      return 902;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -2147,7 +2180,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          01111000011xxxxxxxxx10xxxxxxxxxx
                                                          ldrh.  */
                                                          10987654321098765432109876543210
                                                          01111000011xxxxxxxxx10xxxxxxxxxx
                                                          ldrh.  */
-                                                      return 898;
+                                                      return 907;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -2156,7 +2189,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      1x111000011xxxxxxxxx10xxxxxxxxxx
                                                      ldr.  */
                                                      10987654321098765432109876543210
                                                      1x111000011xxxxxxxxx10xxxxxxxxxx
                                                      ldr.  */
-                                                  return 901;
+                                                  return 910;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -2170,7 +2203,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      001110001x1xxxxxxxxx10xxxxxxxxxx
                                                      ldrsb.  */
                                                      10987654321098765432109876543210
                                                      001110001x1xxxxxxxxx10xxxxxxxxxx
                                                      ldrsb.  */
-                                                  return 894;
+                                                  return 903;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -2178,7 +2211,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101110001x1xxxxxxxxx10xxxxxxxxxx
                                                      ldrsw.  */
                                                      10987654321098765432109876543210
                                                      101110001x1xxxxxxxxx10xxxxxxxxxx
                                                      ldrsw.  */
-                                                  return 902;
+                                                  return 911;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -2189,7 +2222,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      011110001x1xxxxxxxxx10xxxxxxxxxx
                                                      ldrsh.  */
                                                      10987654321098765432109876543210
                                                      011110001x1xxxxxxxxx10xxxxxxxxxx
                                                      ldrsh.  */
-                                                  return 899;
+                                                  return 908;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -2197,7 +2230,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111110001x1xxxxxxxxx10xxxxxxxxxx
                                                      prfm.  */
                                                      10987654321098765432109876543210
                                                      111110001x1xxxxxxxxx10xxxxxxxxxx
                                                      prfm.  */
-                                                  return 903;
+                                                  return 912;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -2220,7 +2253,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      00111000000xxxxxxxxxx1xxxxxxxxxx
                                                      strb.  */
                                                      10987654321098765432109876543210
                                                      00111000000xxxxxxxxxx1xxxxxxxxxx
                                                      strb.  */
-                                                  return 869;
+                                                  return 870;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -2228,7 +2261,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      01111000000xxxxxxxxxx1xxxxxxxxxx
                                                      strh.  */
                                                      10987654321098765432109876543210
                                                      01111000000xxxxxxxxxx1xxxxxxxxxx
                                                      strh.  */
-                                                  return 874;
+                                                  return 875;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -2237,7 +2270,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  1x111000000xxxxxxxxxx1xxxxxxxxxx
                                                  str.  */
                                                  10987654321098765432109876543210
                                                  1x111000000xxxxxxxxxx1xxxxxxxxxx
                                                  str.  */
-                                              return 877;
+                                              return 878;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -2250,7 +2283,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      00111000010xxxxxxxxxx1xxxxxxxxxx
                                                      ldrb.  */
                                                      10987654321098765432109876543210
                                                      00111000010xxxxxxxxxx1xxxxxxxxxx
                                                      ldrb.  */
-                                                  return 870;
+                                                  return 871;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -2258,7 +2291,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      01111000010xxxxxxxxxx1xxxxxxxxxx
                                                      ldrh.  */
                                                      10987654321098765432109876543210
                                                      01111000010xxxxxxxxxx1xxxxxxxxxx
                                                      ldrh.  */
-                                                  return 875;
+                                                  return 876;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -2267,7 +2300,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  1x111000010xxxxxxxxxx1xxxxxxxxxx
                                                  ldr.  */
                                                  10987654321098765432109876543210
                                                  1x111000010xxxxxxxxxx1xxxxxxxxxx
                                                  ldr.  */
-                                              return 878;
+                                              return 879;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -2281,7 +2314,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  001110001x0xxxxxxxxxx1xxxxxxxxxx
                                                  ldrsb.  */
                                                  10987654321098765432109876543210
                                                  001110001x0xxxxxxxxxx1xxxxxxxxxx
                                                  ldrsb.  */
-                                              return 871;
+                                              return 872;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -2289,7 +2322,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  101110001x0xxxxxxxxxx1xxxxxxxxxx
                                                  ldrsw.  */
                                                  10987654321098765432109876543210
                                                  101110001x0xxxxxxxxxx1xxxxxxxxxx
                                                  ldrsw.  */
-                                              return 879;
+                                              return 880;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -2298,7 +2331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x11110001x0xxxxxxxxxx1xxxxxxxxxx
                                              ldrsh.  */
                                              10987654321098765432109876543210
                                              x11110001x0xxxxxxxxxx1xxxxxxxxxx
                                              ldrsh.  */
-                                          return 876;
+                                          return 877;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -2310,7 +2343,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xx1110000x1xxxxxxxxxx1xxxxxxxxxx
                                          ldraa.  */
                                          10987654321098765432109876543210
                                          xx1110000x1xxxxxxxxxx1xxxxxxxxxx
                                          ldraa.  */
-                                      return 925;
+                                      return 935;
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
@@ -2318,7 +2351,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xx1110001x1xxxxxxxxxx1xxxxxxxxxx
                                          ldrab.  */
                                          10987654321098765432109876543210
                                          xx1110001x1xxxxxxxxxx1xxxxxxxxxx
                                          ldrab.  */
-                                      return 926;
+                                      return 936;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -2332,43 +2365,76 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               if (((word >> 29) & 0x1) == 0)
                                 {
                             {
                               if (((word >> 29) & 0x1) == 0)
                                 {
-                                  if (((word >> 30) & 0x1) == 0)
+                                  if (((word >> 10) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 31) & 0x1) == 0)
+                                      if (((word >> 11) & 0x1) == 0)
                                         {
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             0001100100xxxxxxxxxxxxxxxxxxxxxx
-                                             stlurb.  */
-                                          return 2068;
+                                          if (((word >> 21) & 0x1) == 0)
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         00011001000xxxxxxxxx00xxxxxxxxxx
+                                                         stlurb.  */
+                                                      return 2380;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         10011001000xxxxxxxxx00xxxxxxxxxx
+                                                         stlur.  */
+                                                      return 2388;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         01011001000xxxxxxxxx00xxxxxxxxxx
+                                                         stlurh.  */
+                                                      return 2384;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         11011001000xxxxxxxxx00xxxxxxxxxx
+                                                         stlur.  */
+                                                      return 2391;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xx011001001xxxxxxxxx00xxxxxxxxxx
+                                                 stzgm.  */
+                                              return 964;
+                                            }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             1001100100xxxxxxxxxxxxxxxxxxxxxx
-                                             stlur.  */
-                                          return 2076;
+                                             xx01100100xxxxxxxxxx10xxxxxxxxxx
+                                             stg.  */
+                                          return 881;
                                         }
                                     }
                                   else
                                     {
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 31) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             0101100100xxxxxxxxxxxxxxxxxxxxxx
-                                             stlurh.  */
-                                          return 2072;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             1101100100xxxxxxxxxxxxxxxxxxxxxx
-                                             stlur.  */
-                                          return 2079;
-                                        }
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         xx01100100xxxxxxxxxxx1xxxxxxxxxx
+                                         stg.  */
+                                      return 885;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -2381,7 +2447,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              0011100100xxxxxxxxxxxxxxxxxxxxxx
                                              strb.  */
                                              10987654321098765432109876543210
                                              0011100100xxxxxxxxxxxxxxxxxxxxxx
                                              strb.  */
-                                          return 880;
+                                          return 889;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -2389,7 +2455,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              0111100100xxxxxxxxxxxxxxxxxxxxxx
                                              strh.  */
                                              10987654321098765432109876543210
                                              0111100100xxxxxxxxxxxxxxxxxxxxxx
                                              strh.  */
-                                          return 885;
+                                          return 894;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -2398,7 +2464,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          1x11100100xxxxxxxxxxxxxxxxxxxxxx
                                          str.  */
                                          10987654321098765432109876543210
                                          1x11100100xxxxxxxxxxxxxxxxxxxxxx
                                          str.  */
-                                      return 888;
+                                      return 897;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -2406,43 +2472,76 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               if (((word >> 29) & 0x1) == 0)
                                 {
                             {
                               if (((word >> 29) & 0x1) == 0)
                                 {
-                                  if (((word >> 30) & 0x1) == 0)
+                                  if (((word >> 10) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 31) & 0x1) == 0)
+                                      if (((word >> 11) & 0x1) == 0)
                                         {
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             0001100101xxxxxxxxxxxxxxxxxxxxxx
-                                             ldapurb.  */
-                                          return 2069;
+                                          if (((word >> 21) & 0x1) == 0)
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         00011001010xxxxxxxxx00xxxxxxxxxx
+                                                         ldapurb.  */
+                                                      return 2381;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         10011001010xxxxxxxxx00xxxxxxxxxx
+                                                         ldapur.  */
+                                                      return 2389;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         01011001010xxxxxxxxx00xxxxxxxxxx
+                                                         ldapurh.  */
+                                                      return 2385;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         11011001010xxxxxxxxx00xxxxxxxxxx
+                                                         ldapur.  */
+                                                      return 2392;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xx011001011xxxxxxxxx00xxxxxxxxxx
+                                                 ldg.  */
+                                              return 934;
+                                            }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             1001100101xxxxxxxxxxxxxxxxxxxxxx
-                                             ldapur.  */
-                                          return 2077;
+                                             xx01100101xxxxxxxxxx10xxxxxxxxxx
+                                             stzg.  */
+                                          return 882;
                                         }
                                     }
                                   else
                                     {
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 31) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             0101100101xxxxxxxxxxxxxxxxxxxxxx
-                                             ldapurh.  */
-                                          return 2073;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             1101100101xxxxxxxxxxxxxxxxxxxxxx
-                                             ldapur.  */
-                                          return 2080;
-                                        }
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         xx01100101xxxxxxxxxxx1xxxxxxxxxx
+                                         stzg.  */
+                                      return 886;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -2455,7 +2554,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              0011100101xxxxxxxxxxxxxxxxxxxxxx
                                              ldrb.  */
                                              10987654321098765432109876543210
                                              0011100101xxxxxxxxxxxxxxxxxxxxxx
                                              ldrb.  */
-                                          return 881;
+                                          return 890;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -2463,7 +2562,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              0111100101xxxxxxxxxxxxxxxxxxxxxx
                                              ldrh.  */
                                              10987654321098765432109876543210
                                              0111100101xxxxxxxxxxxxxxxxxxxxxx
                                              ldrh.  */
-                                          return 886;
+                                          return 895;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -2472,7 +2571,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          1x11100101xxxxxxxxxxxxxxxxxxxxxx
                                          ldr.  */
                                          10987654321098765432109876543210
                                          1x11100101xxxxxxxxxxxxxxxxxxxxxx
                                          ldr.  */
-                                      return 889;
+                                      return 898;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -2481,53 +2580,119 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           if (((word >> 29) & 0x1) == 0)
                             {
                         {
                           if (((word >> 29) & 0x1) == 0)
                             {
-                              if (((word >> 22) & 0x1) == 0)
+                              if (((word >> 10) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 30) & 0x1) == 0)
+                                  if (((word >> 11) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 31) & 0x1) == 0)
+                                      if (((word >> 21) & 0x1) == 0)
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         00011001100xxxxxxxxx00xxxxxxxxxx
+                                                         ldapursb.  */
+                                                      return 2383;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         10011001100xxxxxxxxx00xxxxxxxxxx
+                                                         ldapursw.  */
+                                                      return 2390;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1011001100xxxxxxxxx00xxxxxxxxxx
+                                                     ldapursh.  */
+                                                  return 2387;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0011001110xxxxxxxxx00xxxxxxxxxx
+                                                     ldapursb.  */
+                                                  return 2382;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1011001110xxxxxxxxx00xxxxxxxxxx
+                                                     ldapursh.  */
+                                                  return 2386;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xx011001101xxxxxxxxx00xxxxxxxxxx
+                                                 stgm.  */
+                                              return 963;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xx011001111xxxxxxxxx00xxxxxxxxxx
+                                                 ldgm.  */
+                                              return 962;
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 22) & 0x1) == 0)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             0001100110xxxxxxxxxxxxxxxxxxxxxx
-                                             ldapursb.  */
-                                          return 2071;
+                                             xx01100110xxxxxxxxxx10xxxxxxxxxx
+                                             st2g.  */
+                                          return 883;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             1001100110xxxxxxxxxxxxxxxxxxxxxx
-                                             ldapursw.  */
-                                          return 2078;
+                                             xx01100111xxxxxxxxxx10xxxxxxxxxx
+                                             stz2g.  */
+                                          return 884;
                                         }
                                     }
                                         }
                                     }
-                                  else
-                                    {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         x101100110xxxxxxxxxxxxxxxxxxxxxx
-                                         ldapursh.  */
-                                      return 2075;
-                                    }
                                 }
                               else
                                 {
                                 }
                               else
                                 {
-                                  if (((word >> 30) & 0x1) == 0)
+                                  if (((word >> 22) & 0x1) == 0)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         x001100111xxxxxxxxxxxxxxxxxxxxxx
-                                         ldapursb.  */
-                                      return 2070;
+                                         xx01100110xxxxxxxxxxx1xxxxxxxxxx
+                                         st2g.  */
+                                      return 887;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         x101100111xxxxxxxxxxxxxxxxxxxxxx
-                                         ldapursh.  */
-                                      return 2074;
+                                         xx01100111xxxxxxxxxxx1xxxxxxxxxx
+                                         stz2g.  */
+                                      return 888;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -2541,7 +2706,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          001110011xxxxxxxxxxxxxxxxxxxxxxx
                                          ldrsb.  */
                                          10987654321098765432109876543210
                                          001110011xxxxxxxxxxxxxxxxxxxxxxx
                                          ldrsb.  */
-                                      return 882;
+                                      return 891;
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
@@ -2549,7 +2714,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          101110011xxxxxxxxxxxxxxxxxxxxxxx
                                          ldrsw.  */
                                          10987654321098765432109876543210
                                          101110011xxxxxxxxxxxxxxxxxxxxxxx
                                          ldrsw.  */
-                                      return 890;
+                                      return 899;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -2560,7 +2725,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          011110011xxxxxxxxxxxxxxxxxxxxxxx
                                          ldrsh.  */
                                          10987654321098765432109876543210
                                          011110011xxxxxxxxxxxxxxxxxxxxxxx
                                          ldrsh.  */
-                                      return 887;
+                                      return 896;
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
@@ -2568,7 +2733,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          111110011xxxxxxxxxxxxxxxxxxxxxxx
                                          prfm.  */
                                          10987654321098765432109876543210
                                          111110011xxxxxxxxxxxxxxxxxxxxxxx
                                          prfm.  */
-                                      return 891;
+                                      return 900;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -2593,7 +2758,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  x00x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  and.  */
                                  10987654321098765432109876543210
                                  x00x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  and.  */
-                              return 976;
+                              return 991;
                             }
                           else
                             {
                             }
                           else
                             {
@@ -2601,7 +2766,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  x10x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  eor.  */
                                  10987654321098765432109876543210
                                  x10x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  eor.  */
-                              return 980;
+                              return 995;
                             }
                         }
                       else
                             }
                         }
                       else
@@ -2612,7 +2777,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  x01x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  orr.  */
                                  10987654321098765432109876543210
                                  x01x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  orr.  */
-                              return 978;
+                              return 993;
                             }
                           else
                             {
                             }
                           else
                             {
@@ -2620,7 +2785,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  x11x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  ands.  */
                                  10987654321098765432109876543210
                                  x11x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  ands.  */
-                              return 981;
+                              return 996;
                             }
                         }
                     }
                             }
                         }
                     }
@@ -2634,7 +2799,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  x00x00101xxxxxxxxxxxxxxxxxxxxxxx
                                  movn.  */
                                  10987654321098765432109876543210
                                  x00x00101xxxxxxxxxxxxxxxxxxxxxxx
                                  movn.  */
-                              return 1167;
+                              return 1182;
                             }
                           else
                             {
                             }
                           else
                             {
@@ -2642,7 +2807,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  x10x00101xxxxxxxxxxxxxxxxxxxxxxx
                                  movz.  */
                                  10987654321098765432109876543210
                                  x10x00101xxxxxxxxxxxxxxxxxxxxxxx
                                  movz.  */
-                              return 1169;
+                              return 1184;
                             }
                         }
                       else
                             }
                         }
                       else
@@ -2651,7 +2816,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                              10987654321098765432109876543210
                              xx1x00101xxxxxxxxxxxxxxxxxxxxxxx
                              movk.  */
                              10987654321098765432109876543210
                              xx1x00101xxxxxxxxxxxxxxxxxxxxxxx
                              movk.  */
-                          return 1171;
+                          return 1186;
                         }
                     }
                 }
                         }
                     }
                 }
@@ -2669,7 +2834,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      x0001010xx0xxxxxxxxxxxxxxxxxxxxx
                                      and.  */
                                      10987654321098765432109876543210
                                      x0001010xx0xxxxxxxxxxxxxxxxxxxxx
                                      and.  */
-                                  return 983;
+                                  return 998;
                                 }
                               else
                                 {
                                 }
                               else
                                 {
@@ -2677,7 +2842,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      x1001010xx0xxxxxxxxxxxxxxxxxxxxx
                                      eor.  */
                                      10987654321098765432109876543210
                                      x1001010xx0xxxxxxxxxxxxxxxxxxxxx
                                      eor.  */
-                                  return 990;
+                                  return 1005;
                                 }
                             }
                           else
                                 }
                             }
                           else
@@ -2688,7 +2853,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      x0101010xx0xxxxxxxxxxxxxxxxxxxxx
                                      orr.  */
                                      10987654321098765432109876543210
                                      x0101010xx0xxxxxxxxxxxxxxxxxxxxx
                                      orr.  */
-                                  return 985;
+                                  return 1000;
                                 }
                               else
                                 {
                                 }
                               else
                                 {
@@ -2696,7 +2861,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      x1101010xx0xxxxxxxxxxxxxxxxxxxxx
                                      ands.  */
                                      10987654321098765432109876543210
                                      x1101010xx0xxxxxxxxxxxxxxxxxxxxx
                                      ands.  */
-                                  return 992;
+                                  return 1007;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -2953,7 +3118,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxx11010x00xxxxxx0xx10xxxxxxxxxx
                                              setf8.  */
                                              10987654321098765432109876543210
                                              xxx11010x00xxxxxx0xx10xxxxxxxxxx
                                              setf8.  */
-                                          return 2066;
+                                          return 2378;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -2961,7 +3126,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxx11010x00xxxxxx1xx10xxxxxxxxxx
                                              setf16.  */
                                              10987654321098765432109876543210
                                              xxx11010x00xxxxxx1xx10xxxxxxxxxx
                                              setf16.  */
-                                          return 2067;
+                                          return 2379;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -3107,7 +3272,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              xxx11010000xxxxxxxxx01xxxxxxxxxx
                                              rmif.  */
                                              10987654321098765432109876543210
                                              xxx11010000xxxxxxxxx01xxxxxxxxxx
                                              rmif.  */
-                                          return 2065;
+                                          return 2377;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -3357,7 +3522,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  x00x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  bic.  */
                                  10987654321098765432109876543210
                                  x00x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  bic.  */
-                              return 984;
+                              return 999;
                             }
                           else
                             {
                             }
                           else
                             {
@@ -3365,7 +3530,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  x10x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  eon.  */
                                  10987654321098765432109876543210
                                  x10x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  eon.  */
-                              return 991;
+                              return 1006;
                             }
                         }
                       else
                             }
                         }
                       else
@@ -3376,7 +3541,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  x01x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  orn.  */
                                  10987654321098765432109876543210
                                  x01x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  orn.  */
-                              return 988;
+                              return 1003;
                             }
                           else
                             {
                             }
                           else
                             {
@@ -3384,7 +3549,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  x11x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  bics.  */
                                  10987654321098765432109876543210
                                  x11x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  bics.  */
-                              return 994;
+                              return 1009;
                             }
                         }
                     }
                             }
                         }
                     }
@@ -3430,7 +3595,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                          10987654321098765432109876543210
                          xxxx00111xxxxxxxxxxxxxxxxxxxxxxx
                          extr.  */
                          10987654321098765432109876543210
                          xxxx00111xxxxxxxxxxxxxxxxxxxxxxx
                          extr.  */
-                      return 757;
+                      return 758;
                     }
                 }
               else
                     }
                 }
               else
@@ -3645,7 +3810,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx000000000xxxxxxxxxxxxx
                                                                      add.  */
                                                                      10987654321098765432109876543210
                                                                      000001x0xx000000000xxxxxxxxxxxxx
                                                                      add.  */
-                                                                  return 1257;
+                                                                  return 1279;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -3653,7 +3818,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx010000000xxxxxxxxxxxxx
                                                                      mul.  */
                                                                      10987654321098765432109876543210
                                                                      000001x0xx010000000xxxxxxxxxxxxx
                                                                      mul.  */
-                                                                  return 1726;
+                                                                  return 1748;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -3664,7 +3829,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001000000xxxxxxxxxxxxx
                                                                      smax.  */
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001000000xxxxxxxxxxxxx
                                                                      smax.  */
-                                                                  return 1805;
+                                                                  return 1827;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -3672,7 +3837,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx011000000xxxxxxxxxxxxx
                                                                      orr.  */
                                                                      10987654321098765432109876543210
                                                                      000001x0xx011000000xxxxxxxxxxxxx
                                                                      orr.  */
-                                                                  return 1737;
+                                                                  return 1759;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -3684,7 +3849,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x0100000xxxxxxxxxxxxx
                                                                  sdiv.  */
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x0100000xxxxxxxxxxxxx
                                                                  sdiv.  */
-                                                              return 1796;
+                                                              return 1818;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -3692,7 +3857,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x1100000xxxxxxxxxxxxx
                                                                  sabd.  */
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x1100000xxxxxxxxxxxxx
                                                                  sabd.  */
-                                                              return 1787;
+                                                              return 1809;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -3706,7 +3871,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x0010000xxxxxxxxxxxxx
                                                                  smulh.  */
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x0010000xxxxxxxxxxxxx
                                                                  smulh.  */
-                                                              return 1810;
+                                                              return 1832;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -3716,7 +3881,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001010000xxxxxxxxxxxxx
                                                                      smin.  */
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001010000xxxxxxxxxxxxx
                                                                      smin.  */
-                                                                  return 1808;
+                                                                  return 1830;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -3724,7 +3889,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx011010000xxxxxxxxxxxxx
                                                                      and.  */
                                                                      10987654321098765432109876543210
                                                                      000001x0xx011010000xxxxxxxxxxxxx
                                                                      and.  */
-                                                                  return 1265;
+                                                                  return 1287;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -3734,7 +3899,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx0xx110000xxxxxxxxxxxxx
                                                              sdivr.  */
                                                              10987654321098765432109876543210
                                                              000001x0xx0xx110000xxxxxxxxxxxxx
                                                              sdivr.  */
-                                                          return 1797;
+                                                          return 1819;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -3750,7 +3915,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x0001000xxxxxxxxxxxxx
                                                                  sub.  */
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x0001000xxxxxxxxxxxxx
                                                                  sub.  */
-                                                              return 1926;
+                                                              return 1948;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -3760,7 +3925,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001001000xxxxxxxxxxxxx
                                                                      umax.  */
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001001000xxxxxxxxxxxxx
                                                                      umax.  */
-                                                                  return 1954;
+                                                                  return 1976;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -3768,7 +3933,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx011001000xxxxxxxxxxxxx
                                                                      eor.  */
                                                                      10987654321098765432109876543210
                                                                      000001x0xx011001000xxxxxxxxxxxxx
                                                                      eor.  */
-                                                                  return 1352;
+                                                                  return 1374;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -3780,7 +3945,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x0101000xxxxxxxxxxxxx
                                                                  udiv.  */
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x0101000xxxxxxxxxxxxx
                                                                  udiv.  */
-                                                              return 1948;
+                                                              return 1970;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -3788,7 +3953,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x1101000xxxxxxxxxxxxx
                                                                  uabd.  */
                                                                  10987654321098765432109876543210
                                                                  000001x0xx0x1101000xxxxxxxxxxxxx
                                                                  uabd.  */
-                                                              return 1939;
+                                                              return 1961;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -3804,7 +3969,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx000011000xxxxxxxxxxxxx
                                                                      subr.  */
                                                                      10987654321098765432109876543210
                                                                      000001x0xx000011000xxxxxxxxxxxxx
                                                                      subr.  */
-                                                                  return 1928;
+                                                                  return 1950;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -3812,7 +3977,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx010011000xxxxxxxxxxxxx
                                                                      umulh.  */
                                                                      10987654321098765432109876543210
                                                                      000001x0xx010011000xxxxxxxxxxxxx
                                                                      umulh.  */
-                                                                  return 1959;
+                                                                  return 1981;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -3823,7 +3988,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001011000xxxxxxxxxxxxx
                                                                      umin.  */
                                                                      10987654321098765432109876543210
                                                                      000001x0xx001011000xxxxxxxxxxxxx
                                                                      umin.  */
-                                                                  return 1957;
+                                                                  return 1979;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -3831,7 +3996,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      000001x0xx011011000xxxxxxxxxxxxx
                                                                      bic.  */
                                                                      10987654321098765432109876543210
                                                                      000001x0xx011011000xxxxxxxxxxxxx
                                                                      bic.  */
-                                                                  return 1277;
+                                                                  return 1299;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -3841,7 +4006,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx0xx111000xxxxxxxxxxxxx
                                                              udivr.  */
                                                              10987654321098765432109876543210
                                                              000001x0xx0xx111000xxxxxxxxxxxxx
                                                              udivr.  */
-                                                          return 1949;
+                                                          return 1971;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -3854,7 +4019,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      100001x00x0xxxxx000xxxxxxxxxxxxx
                                                      ld1sb.  */
                                                      10987654321098765432109876543210
                                                      100001x00x0xxxxx000xxxxxxxxxxxxx
                                                      ld1sb.  */
-                                                  return 1539;
+                                                  return 1561;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -3862,48 +4027,81 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      100001x01x0xxxxx000xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                      10987654321098765432109876543210
                                                      100001x01x0xxxxx000xxxxxxxxxxxxx
                                                      ld1sh.  */
-                                                  return 1550;
+                                                  return 1572;
                                                 }
                                             }
                                         }
                                       else
                                         {
                                                 }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x00x0xxxxx000xxxxxxxxxxxxx
-                                                 ld1sb.  */
-                                              return 1543;
-                                            }
-                                          else
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 31) & 0x1) == 0)
+                                              if (((word >> 12) & 0x1) == 0)
                                                 {
                                                   if (((word >> 10) & 0x1) == 0)
                                                     {
                                                 {
                                                   if (((word >> 10) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         010001x01x0xxxxx000xx0xxxxxxxxxx
-                                                         sdot.  */
-                                                      return 1798;
+                                                      if (((word >> 11) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx000000xxxxxxxxxx
+                                                             sdot.  */
+                                                          return 1820;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx000010xxxxxxxxxx
+                                                             sqdmlalbt.  */
+                                                          return 2170;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         010001x01x0xxxxx000xx1xxxxxxxxxx
-                                                         udot.  */
-                                                      return 1950;
+                                                      if (((word >> 11) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx000001xxxxxxxxxx
+                                                             udot.  */
+                                                          return 1972;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx000011xxxxxxxxxx
+                                                             sqdmlslbt.  */
+                                                          return 2177;
+                                                        }
                                                     }
                                                 }
                                                     }
                                                 }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     010001x0xx0xxxxx0001xxxxxxxxxxxx
+                                                     cdot.  */
+                                                  return 2059;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x00x0xxxxx000xxxxxxxxxxxxx
+                                                     ld1sb.  */
+                                                  return 1565;
+                                                }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                      110001x01x0xxxxx000xxxxxxxxxxxxx
                                                      ld1sh.  */
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                      110001x01x0xxxxx000xxxxxxxxxxxxx
                                                      ld1sh.  */
-                                                  return 1554;
+                                                  return 1576;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -3924,7 +4122,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000000xxxxxxxxxx
                                                              add.  */
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000000xxxxxxxxxx
                                                              add.  */
-                                                          return 1255;
+                                                          return 1277;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -3932,7 +4130,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000100xxxxxxxxxx
                                                              sqadd.  */
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000100xxxxxxxxxx
                                                              sqadd.  */
-                                                          return 1812;
+                                                          return 1834;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -3941,7 +4139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          000001x0xx1xxxxx000x10xxxxxxxxxx
                                                          sqsub.  */
                                                          10987654321098765432109876543210
                                                          000001x0xx1xxxxx000x10xxxxxxxxxx
                                                          sqsub.  */
-                                                      return 1842;
+                                                      return 1864;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -3954,7 +4152,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000001xxxxxxxxxx
                                                              sub.  */
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000001xxxxxxxxxx
                                                              sub.  */
-                                                          return 1924;
+                                                          return 1946;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -3962,7 +4160,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000101xxxxxxxxxx
                                                              uqadd.  */
                                                              10987654321098765432109876543210
                                                              000001x0xx1xxxxx000101xxxxxxxxxx
                                                              uqadd.  */
-                                                          return 1960;
+                                                          return 1982;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -3971,7 +4169,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          000001x0xx1xxxxx000x11xxxxxxxxxx
                                                          uqsub.  */
                                                          10987654321098765432109876543210
                                                          000001x0xx1xxxxx000x11xxxxxxxxxx
                                                          uqsub.  */
-                                                      return 1990;
+                                                      return 2012;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -3983,7 +4181,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      100001x00x1xxxxx000xxxxxxxxxxxxx
                                                      prfb.  */
                                                      10987654321098765432109876543210
                                                      100001x00x1xxxxx000xxxxxxxxxxxxx
                                                      prfb.  */
-                                                  return 1745;
+                                                  return 1767;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -3991,60 +4189,52 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      100001x01x1xxxxx000xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                      10987654321098765432109876543210
                                                      100001x01x1xxxxx000xxxxxxxxxxxxx
                                                      ld1sh.  */
-                                                  return 1551;
+                                                  return 1573;
                                                 }
                                             }
                                         }
                                       else
                                         {
                                           if (((word >> 23) & 0x1) == 0)
                                                 }
                                             }
                                         }
                                       else
                                         {
                                           if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x00x1xxxxx000xxxxxxxxxxxxx
-                                                 prfb.  */
-                                              return 1746;
-                                            }
-                                          else
                                             {
                                               if (((word >> 31) & 0x1) == 0)
                                                 {
                                                   if (((word >> 10) & 0x1) == 0)
                                                     {
                                             {
                                               if (((word >> 31) & 0x1) == 0)
                                                 {
                                                   if (((word >> 10) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 22) & 0x1) == 0)
+                                                      if (((word >> 11) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             010001x0101xxxxx000xx0xxxxxxxxxx
-                                                             sdot.  */
-                                                          return 1799;
+                                                             010001x00x1xxxxx000x00xxxxxxxxxx
+                                                             sqrdmlah.  */
+                                                          return 2195;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             010001x0111xxxxx000xx0xxxxxxxxxx
-                                                             sdot.  */
-                                                          return 1800;
+                                                             010001x00x1xxxxx000x10xxxxxxxxxx
+                                                             mla.  */
+                                                          return 2102;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 22) & 0x1) == 0)
+                                                      if (((word >> 11) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             010001x0101xxxxx000xx1xxxxxxxxxx
-                                                             udot.  */
-                                                          return 1951;
+                                                             010001x00x1xxxxx000x01xxxxxxxxxx
+                                                             sqrdmlsh.  */
+                                                          return 2199;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             010001x0111xxxxx000xx1xxxxxxxxxx
-                                                             udot.  */
-                                                          return 1952;
+                                                             010001x00x1xxxxx000x11xxxxxxxxxx
+                                                             mls.  */
+                                                          return 2105;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -4052,710 +4242,677 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     110001x01x1xxxxx000xxxxxxxxxxxxx
-                                                     ld1sh.  */
-                                                  return 1555;
+                                                     110001x00x1xxxxx000xxxxxxxxxxxxx
+                                                     prfb.  */
+                                                  return 1768;
                                                 }
                                             }
                                                 }
                                             }
-                                        }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 30) & 0x1) == 0)
-                                    {
-                                      if (((word >> 31) & 0x1) == 0)
-                                        {
-                                          if (((word >> 21) & 0x1) == 0)
+                                          else
                                             {
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 31) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 18) & 0x1) == 0)
+                                                  if (((word >> 10) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 19) & 0x1) == 0)
+                                                      if (((word >> 11) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 20) & 0x1) == 0)
+                                                          if (((word >> 12) & 0x1) == 0)
                                                             {
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0000x0100xxxxxxxxxxxxx
-                                                                 asr.  */
-                                                              return 1273;
+                                                              if (((word >> 22) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0101xxxxx000000xxxxxxxxxx
+                                                                     sdot.  */
+                                                                  return 1821;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0111xxxxx000000xxxxxxxxxx
+                                                                     sdot.  */
+                                                                  return 1822;
+                                                                }
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0100x0100xxxxxxxxxxxxx
-                                                                 asr.  */
-                                                              return 1271;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0xx0x10x0100xxxxxxxxxxxxx
-                                                             asr.  */
-                                                          return 1272;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 20) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0xx00x1x0100xxxxxxxxxxxxx
-                                                             asrd.  */
-                                                          return 1274;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0xx01x1x0100xxxxxxxxxxxxx
-                                                             asrr.  */
-                                                          return 1275;
-                                                        }
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 17) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 18) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 20) & 0x1) == 0)
+                                                              if (((word >> 22) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x0xx000001100xxxxxxxxxxxxx
-                                                                     lsr.  */
-                                                                  return 1717;
+                                                                     010001x0101xxxxx000100xxxxxxxxxx
+                                                                     sqrdmlah.  */
+                                                                  return 2196;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x0xx010001100xxxxxxxxxxxxx
-                                                                     lsr.  */
-                                                                  return 1715;
+                                                                     010001x0111xxxxx000100xxxxxxxxxx
+                                                                     sqrdmlah.  */
+                                                                  return 2197;
                                                                 }
                                                             }
                                                                 }
                                                             }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x1001100xxxxxxxxxxxxx
-                                                                 lsr.  */
-                                                              return 1716;
-                                                            }
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0xx0xx101100xxxxxxxxxxxxx
-                                                             lsrr.  */
-                                                          return 1718;
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 22) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0101xxxxx000010xxxxxxxxxx
+                                                                     mla.  */
+                                                                  return 2103;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0111xxxxx000010xxxxxxxxxx
+                                                                     mla.  */
+                                                                  return 2104;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x01x1xxxxx000110xxxxxxxxxx
+                                                                 usdot.  */
+                                                              return 2397;
+                                                            }
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
+                                                      if (((word >> 11) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 19) & 0x1) == 0)
+                                                          if (((word >> 12) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 20) & 0x1) == 0)
+                                                              if (((word >> 22) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x0xx000011100xxxxxxxxxxxxx
-                                                                     lsl.  */
-                                                                  return 1711;
+                                                                     010001x0101xxxxx000001xxxxxxxxxx
+                                                                     udot.  */
+                                                                  return 1973;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x0xx010011100xxxxxxxxxxxxx
-                                                                     lsl.  */
-                                                                  return 1709;
+                                                                     010001x0111xxxxx000001xxxxxxxxxx
+                                                                     udot.  */
+                                                                  return 1974;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x1011100xxxxxxxxxxxxx
-                                                                 lsl.  */
-                                                              return 1710;
+                                                              if (((word >> 22) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0101xxxxx000101xxxxxxxxxx
+                                                                     sqrdmlsh.  */
+                                                                  return 2200;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0111xxxxx000101xxxxxxxxxx
+                                                                     sqrdmlsh.  */
+                                                                  return 2201;
+                                                                }
                                                             }
                                                         }
                                                       else
                                                         {
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0xx0xx111100xxxxxxxxxxxxx
-                                                             lslr.  */
-                                                          return 1712;
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 22) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0101xxxxx000011xxxxxxxxxx
+                                                                     mls.  */
+                                                                  return 2106;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0111xxxxx000011xxxxxxxxxx
+                                                                     mls.  */
+                                                                  return 2107;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x01x1xxxxx000111xxxxxxxxxx
+                                                                 sudot.  */
+                                                              return 2398;
+                                                            }
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x01x1xxxxx000xxxxxxxxxxxxx
+                                                     ld1sh.  */
+                                                  return 1577;
+                                                }
                                             }
                                             }
-                                          else
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      if (((word >> 21) & 0x1) == 0)
+                                        {
+                                          if (((word >> 16) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 10) & 0x1) == 0)
+                                              if (((word >> 17) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 12) & 0x1) == 0)
+                                                  if (((word >> 18) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x0xx1xxxxx1000x0xxxxxxxxxx
-                                                         asr.  */
-                                                      return 1269;
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx000000100xxxxxxxxxxxxx
+                                                                 asr.  */
+                                                              return 1295;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0xx010000100xxxxxxxxxxxxx
+                                                                     asr.  */
+                                                                  return 1293;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0xx010000100xxxxxxxxxxxxx
+                                                                     shadd.  */
+                                                                  return 2136;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx001000100xxxxxxxxxxxxx
+                                                                 sqshl.  */
+                                                              return 2214;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0xx011000100xxxxxxxxxxxxx
+                                                                     asr.  */
+                                                                  return 1294;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0xx011000100xxxxxxxxxxxxx
+                                                                     sqadd.  */
+                                                                  return 2165;
+                                                                }
+                                                            }
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x0xx1xxxxx1001x0xxxxxxxxxx
-                                                         asr.  */
-                                                      return 1270;
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx000100100xxxxxxxxxxxxx
+                                                                 asrd.  */
+                                                              return 1296;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0xx010100100xxxxxxxxxxxxx
+                                                                     asrr.  */
+                                                                  return 1297;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0xx010100100xxxxxxxxxxxxx
+                                                                     srhadd.  */
+                                                                  return 2227;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0xx001100100xxxxxxxxxxxxx
+                                                                     srshr.  */
+                                                                  return 2231;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0xx001100100xxxxxxxxxxxxx
+                                                                     sqshlr.  */
+                                                                  return 2215;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx011100100xxxxxxxxxxxxx
+                                                                 suqadd.  */
+                                                              return 2251;
+                                                            }
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 11) & 0x1) == 0)
+                                                  if (((word >> 18) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 12) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0xx1xxxxx100001xxxxxxxxxx
-                                                             lsr.  */
-                                                          return 1713;
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx000010100xxxxxxxxxxxxx
+                                                                 srshl.  */
+                                                              return 2229;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx010010100xxxxxxxxxxxxx
+                                                                 shsub.  */
+                                                              return 2139;
+                                                            }
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0xx1xxxxx100101xxxxxxxxxx
-                                                             lsr.  */
-                                                          return 1714;
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx001010100xxxxxxxxxxxxx
+                                                                 sqrshl.  */
+                                                              return 2207;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx011010100xxxxxxxxxxxxx
+                                                                 sqsub.  */
+                                                              return 2221;
+                                                            }
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 12) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0xx1xxxxx100011xxxxxxxxxx
-                                                             lsl.  */
-                                                          return 1707;
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0xx000110100xxxxxxxxxxxxx
+                                                                     sqshl.  */
+                                                                  return 2213;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0xx000110100xxxxxxxxxxxxx
+                                                                     srshlr.  */
+                                                                  return 2230;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx010110100xxxxxxxxxxxxx
+                                                                 shsubr.  */
+                                                              return 2140;
+                                                            }
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0xx1xxxxx100111xxxxxxxxxx
-                                                             lsl.  */
-                                                          return 1708;
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx001110100xxxxxxxxxxxxx
+                                                                 sqrshlr.  */
+                                                              return 2208;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx011110100xxxxxxxxxxxxx
+                                                                 sqsubr.  */
+                                                              return 2222;
+                                                            }
                                                         }
                                                     }
                                                 }
                                             }
                                                         }
                                                     }
                                                 }
                                             }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x000xxxxxx100xxxxxxxxxxxxx
-                                                     ld1sb.  */
-                                                  return 1545;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x010xxxxxx100xxxxxxxxxxxxx
-                                                     ld1sh.  */
-                                                  return 1558;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x001xxxxxx100xxxxxxxxxxxxx
-                                                     ld1rb.  */
-                                                  return 1515;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x011xxxxxx100xxxxxxxxxxxxx
-                                                     ld1rsw.  */
-                                                  return 1536;
-                                                }
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 21) & 0x1) == 0)
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x00x0xxxxx100xxxxxxxxxxxxx
-                                                 ld1sb.  */
-                                              return 1544;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x01x0xxxxx100xxxxxxxxxxxxx
-                                                 ld1sh.  */
-                                              return 1556;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0001xxxxx100xxxxxxxxxxxxx
-                                                     ld1sb.  */
-                                                  return 1549;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0101xxxxx100xxxxxxxxxxxxx
-                                                     ld1sh.  */
-                                                  return 1561;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0011xxxxx100xxxxxxxxxxxxx
-                                                     prfb.  */
-                                                  return 1747;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0111xxxxx100xxxxxxxxxxxxx
-                                                     ld1sh.  */
-                                                  return 1557;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 15) & 0x1) == 0)
-                                {
-                                  if (((word >> 21) & 0x1) == 0)
-                                    {
-                                      if (((word >> 30) & 0x1) == 0)
-                                        {
-                                          if (((word >> 31) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 000001x0xx0xxxxx010xxxxxxxxxxxxx
-                                                 mla.  */
-                                              return 1720;
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x00x0xxxxx010xxxxxxxxxxxxx
-                                                     ld1b.  */
-                                                  return 1481;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x01x0xxxxx010xxxxxxxxxxxxx
-                                                     ld1h.  */
-                                                  return 1501;
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x00x0xxxxx010xxxxxxxxxxxxx
-                                                 ld1b.  */
-                                              return 1486;
-                                            }
                                           else
                                             {
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x01x0xxxxx010xxxxxxxxxxxxx
-                                                 ld1h.  */
-                                              return 1506;
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 30) & 0x1) == 0)
-                                        {
-                                          if (((word >> 31) & 0x1) == 0)
-                                            {
-                                              if (((word >> 11) & 0x1) == 0)
+                                              if (((word >> 17) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 12) & 0x1) == 0)
+                                                  if (((word >> 18) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 10) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0xx1xxxxx010000xxxxxxxxxx
-                                                             index.  */
-                                                          return 1472;
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx000001100xxxxxxxxxxxxx
+                                                                 lsr.  */
+                                                              return 1739;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0xx010001100xxxxxxxxxxxxx
+                                                                     lsr.  */
+                                                                  return 1737;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0xx010001100xxxxxxxxxxxxx
+                                                                     uhadd.  */
+                                                                  return 2264;
+                                                                }
+                                                            }
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0xx1xxxxx010001xxxxxxxxxx
-                                                             index.  */
-                                                          return 1473;
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx001001100xxxxxxxxxxxxx
+                                                                 uqshl.  */
+                                                              return 2294;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0xx011001100xxxxxxxxxxxxx
+                                                                     lsr.  */
+                                                                  return 1738;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0xx011001100xxxxxxxxxxxxx
+                                                                     uqadd.  */
+                                                                  return 2288;
+                                                                }
+                                                            }
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 22) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 23) & 0x1) == 0)
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 000001x0001xxxxx01010xxxxxxxxxxx
-                                                                 addvl.  */
-                                                              return 1259;
+                                                                 000001x0xx0x0101100xxxxxxxxxxxxx
+                                                                 lsrr.  */
+                                                              return 1740;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 000001x0101xxxxx01010xxxxxxxxxxx
-                                                                 rdvl.  */
-                                                              return 1781;
+                                                                 010001x0xx0x0101100xxxxxxxxxxxxx
+                                                                 urhadd.  */
+                                                              return 2303;
                                                             }
                                                         }
                                                       else
                                                         {
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0x11xxxxx01010xxxxxxxxxxx
-                                                             addpl.  */
-                                                          return 1258;
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0xx001101100xxxxxxxxxxxxx
+                                                                     urshr.  */
+                                                                  return 2306;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0xx001101100xxxxxxxxxxxxx
+                                                                     uqshlr.  */
+                                                                  return 2295;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x0001x0xx011101100xxxxxxxxxxxxx
+                                                                 usqadd.  */
+                                                              return 2311;
+                                                            }
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 10) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x0xx1xxxxx010x10xxxxxxxxxx
-                                                         index.  */
-                                                      return 1474;
-                                                    }
-                                                  else
+                                                  if (((word >> 18) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x0xx1xxxxx010x11xxxxxxxxxx
-                                                         index.  */
-                                                      return 1471;
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x00x1xxxxx010xxxxxxxxxxxxx
-                                                     prfw.  */
-                                                  return 1765;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x01x1xxxxx010xxxxxxxxxxxxx
-                                                     ld1h.  */
-                                                  return 1502;
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x00x1xxxxx010xxxxxxxxxxxxx
-                                                 prfw.  */
-                                              return 1767;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x01x1xxxxx010xxxxxxxxxxxxx
-                                                 ld1h.  */
-                                              return 1507;
-                                            }
-                                        }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 30) & 0x1) == 0)
-                                    {
-                                      if (((word >> 31) & 0x1) == 0)
-                                        {
-                                          if (((word >> 21) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 000001x0xx0xxxxx110xxxxxxxxxxxxx
-                                                 mad.  */
-                                              return 1719;
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 10) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 11) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 22) & 0x1) == 0)
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0x010xxxx110x00xxxxxxxxxx
-                                                                 sqincw.  */
-                                                              return 1839;
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0xx000011100xxxxxxxxxxxxx
+                                                                     lsl.  */
+                                                                  return 1733;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0xx000011100xxxxxxxxxxxxx
+                                                                     urshl.  */
+                                                                  return 2304;
+                                                                }
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 23) & 0x1) == 0)
+                                                              if (((word >> 30) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x00110xxxx110x00xxxxxxxxxx
-                                                                     sqinch.  */
-                                                                  return 1833;
+                                                                     000001x0xx010011100xxxxxxxxxxxxx
+                                                                     lsl.  */
+                                                                  return 1731;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x01110xxxx110x00xxxxxxxxxx
-                                                                     sqincd.  */
-                                                                  return 1830;
+                                                                     010001x0xx010011100xxxxxxxxxxxxx
+                                                                     uhsub.  */
+                                                                  return 2265;
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 22) & 0x1) == 0)
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 000001x0x011xxxx110x00xxxxxxxxxx
-                                                                 incw.  */
-                                                              return 1469;
+                                                                 0x0001x0xx001011100xxxxxxxxxxxxx
+                                                                 uqrshl.  */
+                                                              return 2289;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 23) & 0x1) == 0)
+                                                              if (((word >> 30) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x00111xxxx110x00xxxxxxxxxx
-                                                                     inch.  */
-                                                                  return 1465;
+                                                                     000001x0xx011011100xxxxxxxxxxxxx
+                                                                     lsl.  */
+                                                                  return 1732;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x01111xxxx110x00xxxxxxxxxx
-                                                                     incd.  */
-                                                                  return 1463;
+                                                                     010001x0xx011011100xxxxxxxxxxxxx
+                                                                     uqsub.  */
+                                                                  return 2298;
                                                                 }
                                                             }
                                                         }
                                                     }
                                                   else
                                                     {
                                                                 }
                                                             }
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 22) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0x01xxxxx110x10xxxxxxxxxx
-                                                             sqdecw.  */
-                                                          return 1825;
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 23) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0011xxxxx110x10xxxxxxxxxx
-                                                                 sqdech.  */
-                                                              return 1819;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0111xxxxx110x10xxxxxxxxxx
-                                                                 sqdecd.  */
-                                                              return 1816;
-                                                            }
-                                                        }
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 11) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 22) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0x010xxxx110x01xxxxxxxxxx
-                                                                 uqincw.  */
-                                                              return 1987;
-                                                            }
-                                                          else
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 23) & 0x1) == 0)
+                                                              if (((word >> 30) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x00110xxxx110x01xxxxxxxxxx
-                                                                     uqinch.  */
-                                                                  return 1981;
+                                                                     000001x0xx000111100xxxxxxxxxxxxx
+                                                                     uqshl.  */
+                                                                  return 2293;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x01110xxxx110x01xxxxxxxxxx
-                                                                     uqincd.  */
-                                                                  return 1978;
+                                                                     010001x0xx000111100xxxxxxxxxxxxx
+                                                                     urshlr.  */
+                                                                  return 2305;
                                                                 }
                                                             }
                                                                 }
                                                             }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 22) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0x011xxxx110x01xxxxxxxxxx
-                                                                 decw.  */
-                                                              return 1344;
-                                                            }
                                                           else
                                                             {
                                                           else
                                                             {
-                                                              if (((word >> 23) & 0x1) == 0)
+                                                              if (((word >> 30) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x00111xxxx110x01xxxxxxxxxx
-                                                                     dech.  */
-                                                                  return 1340;
+                                                                     000001x0xx010111100xxxxxxxxxxxxx
+                                                                     lslr.  */
+                                                                  return 1734;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x01111xxxx110x01xxxxxxxxxx
-                                                                     decd.  */
-                                                                  return 1338;
+                                                                     010001x0xx010111100xxxxxxxxxxxxx
+                                                                     uhsubr.  */
+                                                                  return 2266;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 22) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x0x01xxxxx110x11xxxxxxxxxx
-                                                             uqdecw.  */
-                                                          return 1973;
-                                                        }
                                                       else
                                                         {
                                                       else
                                                         {
-                                                          if (((word >> 23) & 0x1) == 0)
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0011xxxxx110x11xxxxxxxxxx
-                                                                 uqdech.  */
-                                                              return 1967;
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0xx001111100xxxxxxxxxxxxx
+                                                                     sqshlu.  */
+                                                                  return 2216;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0xx001111100xxxxxxxxxxxxx
+                                                                     uqrshlr.  */
+                                                                  return 2290;
+                                                                }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 000001x0111xxxxx110x11xxxxxxxxxx
-                                                                 uqdecd.  */
-                                                              return 1964;
+                                                                 0x0001x0xx011111100xxxxxxxxxxxxx
+                                                                 uqsubr.  */
+                                                              return 2299;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -4764,628 +4921,408 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 10) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 21) & 0x1) == 0)
+                                              if (((word >> 12) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 30) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         100001x0000xxxxx110xxxxxxxxxxxxx
-                                                         prfb.  */
-                                                      return 1744;
+                                                         000001x0xx1xxxxx1000x0xxxxxxxxxx
+                                                         asr.  */
+                                                      return 1291;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         100001x0100xxxxx110xxxxxxxxxxxxx
-                                                         prfh.  */
-                                                      return 1759;
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0x01xxxxx1000x0xxxxxxxxxx
+                                                             smlalb.  */
+                                                          return 2144;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0x11xxxxx1000x0xxxxxxxxxx
+                                                             smlalb.  */
+                                                          return 2145;
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 30) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         100001x0001xxxxx110xxxxxxxxxxxxx
-                                                         ld1b.  */
-                                                      return 1488;
+                                                         000001x0xx1xxxxx1001x0xxxxxxxxxx
+                                                         asr.  */
+                                                      return 1292;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         100001x0101xxxxx110xxxxxxxxxxxxx
-                                                         ld1h.  */
-                                                      return 1510;
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0x01xxxxx1001x0xxxxxxxxxx
+                                                             umlalb.  */
+                                                          return 2269;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0x11xxxxx1001x0xxxxxxxxxx
+                                                             umlalb.  */
+                                                          return 2270;
+                                                        }
                                                     }
                                                 }
                                             }
                                           else
                                             {
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x001xxxxxx110xxxxxxxxxxxxx
-                                                     ld1rb.  */
-                                                  return 1517;
-                                                }
-                                              else
+                                              if (((word >> 12) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x011xxxxxx110xxxxxxxxxxxxx
-                                                     ld1rh.  */
-                                                  return 1521;
-                                                }
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 21) & 0x1) == 0)
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x00x0xxxxx110xxxxxxxxxxxxx
-                                                 ld1b.  */
-                                              return 1487;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x01x0xxxxx110xxxxxxxxxxxxx
-                                                 ld1h.  */
-                                              return 1508;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0001xxxxx110xxxxxxxxxxxxx
-                                                     ld1b.  */
-                                                  return 1493;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0101xxxxx110xxxxxxxxxxxxx
-                                                     ld1h.  */
-                                                  return 1514;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0011xxxxx110xxxxxxxxxxxxx
-                                                     prfw.  */
-                                                  return 1768;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0111xxxxx110xxxxxxxxxxxxx
-                                                     ld1h.  */
-                                                  return 1509;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                      else
-                        {
-                          if (((word >> 14) & 0x1) == 0)
-                            {
-                              if (((word >> 15) & 0x1) == 0)
-                                {
-                                  if (((word >> 21) & 0x1) == 0)
-                                    {
-                                      if (((word >> 30) & 0x1) == 0)
-                                        {
-                                          if (((word >> 31) & 0x1) == 0)
-                                            {
-                                              if (((word >> 17) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 30) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 11) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 16) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx000x00001xxxxxxxxxxxxx
-                                                                 saddv.  */
-                                                              return 1788;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx000x01001xxxxxxxxxxxxx
-                                                                 uaddv.  */
-                                                              return 1940;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx1xxxxx100001xxxxxxxxxx
+                                                             lsr.  */
+                                                          return 1735;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x0xx010x0x001xxxxxxxxxxxxx
-                                                             movprfx.  */
-                                                          return 1723;
+                                                             000001x0xx1xxxxx100011xxxxxxxxxx
+                                                             lsl.  */
+                                                          return 1729;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 16) & 0x1) == 0)
+                                                      if (((word >> 22) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 20) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx001x00001xxxxxxxxxxxxx
-                                                                 smaxv.  */
-                                                              return 1806;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx011x00001xxxxxxxxxxxxx
-                                                                 orv.  */
-                                                              return 1740;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0x01xxxxx1000x1xxxxxxxxxx
+                                                             smlalt.  */
+                                                          return 2147;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 20) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx001x01001xxxxxxxxxxxxx
-                                                                 umaxv.  */
-                                                              return 1955;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx011x01001xxxxxxxxxxxxx
-                                                                 eorv.  */
-                                                              return 1355;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0x11xxxxx1000x1xxxxxxxxxx
+                                                             smlalt.  */
+                                                          return 2148;
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 16) & 0x1) == 0)
+                                                  if (((word >> 30) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 11) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x0xx00xx10001xxxxxxxxxxxxx
-                                                             sminv.  */
-                                                          return 1809;
+                                                             000001x0xx1xxxxx100101xxxxxxxxxx
+                                                             lsr.  */
+                                                          return 1736;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x0xx01xx10001xxxxxxxxxxxxx
-                                                             andv.  */
-                                                          return 1268;
+                                                             000001x0xx1xxxxx100111xxxxxxxxxx
+                                                             lsl.  */
+                                                          return 1730;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x0xx0xxx11001xxxxxxxxxxxxx
-                                                         uminv.  */
-                                                      return 1958;
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0x01xxxxx1001x1xxxxxxxxxx
+                                                             umlalt.  */
+                                                          return 2272;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0x11xxxxx1001x1xxxxxxxxxx
+                                                             umlalt.  */
+                                                          return 2273;
+                                                        }
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                          else
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 22) & 0x1) == 0)
+                                        {
+                                          if (((word >> 21) & 0x1) == 0)
                                             {
                                               if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                             {
                                               if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     100001x00x0xxxxx001xxxxxxxxxxxxx
-                                                     ldff1sb.  */
-                                                  return 1639;
+                                                     1x0001x0000xxxxx100xxxxxxxxxxxxx
+                                                     ldnt1sb.  */
+                                                  return 2096;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     100001x01x0xxxxx001xxxxxxxxxxxxx
-                                                     ldff1sh.  */
-                                                  return 1650;
+                                                     1x0001x0100xxxxx100xxxxxxxxxxxxx
+                                                     ldnt1sh.  */
+                                                  return 2097;
                                                 }
                                             }
                                                 }
                                             }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x00x0xxxxx001xxxxxxxxxxxxx
-                                                 ldff1sb.  */
-                                              return 1646;
-                                            }
                                           else
                                             {
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x01x0xxxxx001xxxxxxxxxxxxx
-                                                 ldff1sh.  */
-                                              return 1656;
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 23) & 0x1) == 0)
-                                        {
-                                          if (((word >> 30) & 0x1) == 0)
-                                            {
-                                              if (((word >> 31) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  if (((word >> 30) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         000001x0001xxxxx001xxxxxxxxxxxxx
-                                                         and.  */
-                                                      return 1263;
+                                                         100001x0001xxxxx100xxxxxxxxxxxxx
+                                                         ld1sb.  */
+                                                      return 1567;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         000001x0011xxxxx001xxxxxxxxxxxxx
-                                                         orr.  */
-                                                      return 1735;
+                                                         110001x0001xxxxx100xxxxxxxxxxxxx
+                                                         ld1sb.  */
+                                                      return 1571;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x00x1xxxxx001xxxxxxxxxxxxx
-                                                     prfh.  */
-                                                  return 1758;
+                                                  if (((word >> 30) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0101xxxxx100xxxxxxxxxxxxx
+                                                         ld1sh.  */
+                                                      return 1580;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x0101xxxxx100xxxxxxxxxxxxx
+                                                         ld1sh.  */
+                                                      return 1583;
+                                                    }
                                                 }
                                             }
                                                 }
                                             }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x00x1xxxxx001xxxxxxxxxxxxx
-                                                 prfh.  */
-                                              return 1760;
-                                            }
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
+                                          if (((word >> 23) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 31) & 0x1) == 0)
+                                              if (((word >> 30) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x001xxxxxx100xxxxxxxxxxxxx
+                                                     ld1rb.  */
+                                                  return 1537;
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 21) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         000001x0101xxxxx001xxxxxxxxxxxxx
-                                                         eor.  */
-                                                      return 1350;
+                                                         110001x0010xxxxx100xxxxxxxxxxxxx
+                                                         ld1sb.  */
+                                                      return 1566;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         000001x0111xxxxx001xxxxxxxxxxxxx
-                                                         bic.  */
-                                                      return 1276;
+                                                         110001x0011xxxxx100xxxxxxxxxxxxx
+                                                         prfb.  */
+                                                      return 1769;
                                                     }
                                                 }
                                                     }
                                                 }
-                                              else
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     100001x01x1xxxxx001xxxxxxxxxxxxx
-                                                     ldff1sh.  */
-                                                  return 1651;
+                                                     100001x011xxxxxx100xxxxxxxxxxxxx
+                                                     ld1rsw.  */
+                                                  return 1558;
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 21) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x0110xxxxx100xxxxxxxxxxxxx
+                                                         ld1sh.  */
+                                                      return 1578;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x0111xxxxx100xxxxxxxxxxxxx
+                                                         ld1sh.  */
+                                                      return 1579;
+                                                    }
                                                 }
                                             }
                                                 }
                                             }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x01x1xxxxx001xxxxxxxxxxxxx
-                                                 ldff1sh.  */
-                                              return 1657;
-                                            }
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
-                              else
+                            }
+                          else
+                            {
+                              if (((word >> 15) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 30) & 0x1) == 0)
+                                  if (((word >> 21) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 31) & 0x1) == 0)
+                                      if (((word >> 30) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 21) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 000001x0xx0xxxxx010xxxxxxxxxxxxx
+                                                 mla.  */
+                                              return 1742;
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 17) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 18) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x0000101xxxxxxxxxxxxx
-                                                                 sxtb.  */
-                                                              return 1931;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x1000101xxxxxxxxxxxxx
-                                                                 cls.  */
-                                                              return 1296;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x0100101xxxxxxxxxxxxx
-                                                                 sxtw.  */
-                                                              return 1933;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x1100101xxxxxxxxxxxxx
-                                                                 fabs.  */
-                                                              return 1358;
-                                                            }
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 18) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x0010101xxxxxxxxxxxxx
-                                                                 sxth.  */
-                                                              return 1932;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x1010101xxxxxxxxxxxxx
-                                                                 cnt.  */
-                                                              return 1325;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x0110101xxxxxxxxxxxxx
-                                                                 abs.  */
-                                                              return 1254;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x1110101xxxxxxxxxxxxx
-                                                                 not.  */
-                                                              return 1732;
-                                                            }
-                                                        }
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x00x0xxxxx010xxxxxxxxxxxxx
+                                                     ld1b.  */
+                                                  return 1503;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 17) & 0x1) == 0)
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x01x0xxxxx010xxxxxxxxxxxxx
+                                                     ld1h.  */
+                                                  return 1523;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 10) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x0001101xxxxxxxxxxxxx
-                                                                 uxtb.  */
-                                                              return 1994;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x1001101xxxxxxxxxxxxx
-                                                                 clz.  */
-                                                              return 1297;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx010000xxxxxxxxxx
+                                                             smlalb.  */
+                                                          return 2146;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x0101101xxxxxxxxxxxxx
-                                                                 uxtw.  */
-                                                              return 1996;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x1101101xxxxxxxxxxxxx
-                                                                 fneg.  */
-                                                              return 1435;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx010100xxxxxxxxxx
+                                                             smlslb.  */
+                                                          return 2152;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x0011101xxxxxxxxxxxxx
-                                                                 uxth.  */
-                                                              return 1995;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x0xx0x1011101xxxxxxxxxxxxx
-                                                                 cnot.  */
-                                                              return 1324;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx010010xxxxxxxxxx
+                                                             umlalb.  */
+                                                          return 2271;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x0xx0xx111101xxxxxxxxxxxxx
-                                                             neg.  */
-                                                          return 1729;
+                                                             010001x0xx0xxxxx010110xxxxxxxxxx
+                                                             umlslb.  */
+                                                          return 2277;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 12) & 0x1) == 0)
+                                              else
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 11) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 22) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x0001xxxxx1010xxxxxxxxxxxx
-                                                             adr.  */
-                                                          return 1260;
+                                                             010001x0xx0xxxxx010001xxxxxxxxxx
+                                                             smlalt.  */
+                                                          return 2149;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x0011xxxxx1010xxxxxxxxxxxx
-                                                             adr.  */
-                                                          return 1261;
+                                                             010001x0xx0xxxxx010101xxxxxxxxxx
+                                                             smlslt.  */
+                                                          return 2155;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x01x1xxxxx1010xxxxxxxxxxxx
-                                                         adr.  */
-                                                      return 1262;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 10) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 11) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x0xx1xxxxx101100xxxxxxxxxx
-                                                             ftssel.  */
-                                                          return 1461;
+                                                             010001x0xx0xxxxx010011xxxxxxxxxx
+                                                             umlalt.  */
+                                                          return 2274;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x0xx1xxxxx101110xxxxxxxxxx
-                                                             fexpa.  */
-                                                          return 1405;
+                                                             010001x0xx0xxxxx010111xxxxxxxxxx
+                                                             umlslt.  */
+                                                          return 2280;
                                                         }
                                                     }
                                                         }
                                                     }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x0xx1xxxxx1011x1xxxxxxxxxx
-                                                         movprfx.  */
-                                                      return 1722;
-                                                    }
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x000xxxxxx101xxxxxxxxxxxxx
-                                                     ldff1sb.  */
-                                                  return 1648;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x010xxxxxx101xxxxxxxxxxxxx
-                                                     ldff1sh.  */
-                                                  return 1660;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -5394,61 +5331,97 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     100001x001xxxxxx101xxxxxxxxxxxxx
-                                                     ld1rb.  */
-                                                  return 1516;
+                                                     110001x00x0xxxxx010xxxxxxxxxxxxx
+                                                     ld1b.  */
+                                                  return 1508;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     100001x011xxxxxx101xxxxxxxxxxxxx
-                                                     ld1rh.  */
-                                                  return 1520;
+                                                     110001x01x0xxxxx010xxxxxxxxxxxxx
+                                                     ld1h.  */
+                                                  return 1528;
                                                 }
                                             }
                                         }
                                     }
                                   else
                                     {
                                                 }
                                             }
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 21) & 0x1) == 0)
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x00x0xxxxx101xxxxxxxxxxxxx
-                                                 ldff1sb.  */
-                                              return 1647;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x01x0xxxxx101xxxxxxxxxxxxx
-                                                 ldff1sh.  */
-                                              return 1658;
-                                            }
-                                        }
-                                      else
+                                      if (((word >> 30) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 11) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0001xxxxx101xxxxxxxxxxxxx
-                                                     ldff1sb.  */
-                                                  return 1649;
+                                                  if (((word >> 12) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx1xxxxx010000xxxxxxxxxx
+                                                             index.  */
+                                                          return 1494;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx1xxxxx010001xxxxxxxxxx
+                                                             index.  */
+                                                          return 1495;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0001xxxxx01010xxxxxxxxxxx
+                                                                 addvl.  */
+                                                              return 1281;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0101xxxxx01010xxxxxxxxxxx
+                                                                 rdvl.  */
+                                                              return 1803;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0x11xxxxx01010xxxxxxxxxxx
+                                                             addpl.  */
+                                                          return 1280;
+                                                        }
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0101xxxxx101xxxxxxxxxxxxx
-                                                     ldff1sh.  */
-                                                  return 1661;
+                                                  if (((word >> 10) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x0xx1xxxxx010x10xxxxxxxxxx
+                                                         index.  */
+                                                      return 1496;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x0xx1xxxxx010x11xxxxxxxxxx
+                                                         index.  */
+                                                      return 1493;
+                                                    }
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -5457,119 +5430,61 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x10001x0011xxxxx101xxxxxxxxxxxxx
-                                                     prfh.  */
-                                                  return 1761;
+                                                     100001x00x1xxxxx010xxxxxxxxxxxxx
+                                                     prfw.  */
+                                                  return 1787;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x10001x0111xxxxx101xxxxxxxxxxxxx
-                                                     ldff1sh.  */
-                                                  return 1659;
+                                                     100001x01x1xxxxx010xxxxxxxxxxxxx
+                                                     ld1h.  */
+                                                  return 1524;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
-                                    }
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 15) & 0x1) == 0)
-                                {
-                                  if (((word >> 21) & 0x1) == 0)
-                                    {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      else
                                         {
                                         {
-                                          if (((word >> 31) & 0x1) == 0)
+                                          if (((word >> 23) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 000001x0xx0xxxxx011xxxxxxxxxxxxx
-                                                 mls.  */
-                                              return 1721;
+                                                 x10001x00x1xxxxx010xxxxxxxxxxxxx
+                                                 prfw.  */
+                                              return 1789;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 31) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x00x0xxxxx011xxxxxxxxxxxxx
-                                                     ldff1b.  */
-                                                  return 1605;
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         010001x0101xxxxx010xxxxxxxxxxxxx
+                                                         cdot.  */
+                                                      return 2061;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         010001x0111xxxxx010xxxxxxxxxxxxx
+                                                         cdot.  */
+                                                      return 2060;
+                                                    }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     100001x01x0xxxxx011xxxxxxxxxxxxx
-                                                     ldff1h.  */
-                                                  return 1625;
+                                                     110001x01x1xxxxx010xxxxxxxxxxxxx
+                                                     ld1h.  */
+                                                  return 1529;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x00x0xxxxx011xxxxxxxxxxxxx
-                                                 ldff1b.  */
-                                              return 1614;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x01x0xxxxx011xxxxxxxxxxxxx
-                                                 ldff1h.  */
-                                              return 1633;
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 23) & 0x1) == 0)
-                                        {
-                                          if (((word >> 30) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x00001x00x1xxxxx011xxxxxxxxxxxxx
-                                                 prfd.  */
-                                              return 1751;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x00x1xxxxx011xxxxxxxxxxxxx
-                                                 prfd.  */
-                                              return 1753;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 30) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x00001x01x1xxxxx011xxxxxxxxxxxxx
-                                                 ldff1h.  */
-                                              return 1626;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x01x1xxxxx011xxxxxxxxxxxxx
-                                                 ldff1h.  */
-                                              return 1634;
-                                            }
-                                        }
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -5582,9 +5497,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 000001x0xx0xxxxx111xxxxxxxxxxxxx
-                                                 msb.  */
-                                              return 1724;
+                                                 000001x0xx0xxxxx110xxxxxxxxxxxxx
+                                                 mad.  */
+                                              return 1741;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -5592,259 +5507,94 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   if (((word >> 11) & 0x1) == 0)
                                                     {
                                                 {
                                                   if (((word >> 11) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 12) & 0x1) == 0)
+                                                      if (((word >> 20) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 20) & 0x1) == 0)
+                                                          if (((word >> 22) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 22) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 23) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x00010xxxx111000xxxxxxxxxx
-                                                                         cntb.  */
-                                                                      return 1326;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x01010xxxx111000xxxxxxxxxx
-                                                                         cntw.  */
-                                                                      return 1330;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 23) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x00110xxxx111000xxxxxxxxxx
-                                                                         cnth.  */
-                                                                      return 1328;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x01110xxxx111000xxxxxxxxxx
-                                                                         cntd.  */
-                                                                      return 1327;
-                                                                    }
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0x010xxxx110x00xxxxxxxxxx
+                                                                 sqincw.  */
+                                                              return 1861;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 22) & 0x1) == 0)
+                                                              if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 23) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x00011xxxx111000xxxxxxxxxx
-                                                                         incb.  */
-                                                                      return 1462;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x01011xxxx111000xxxxxxxxxx
-                                                                         incw.  */
-                                                                      return 1470;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x00110xxxx110x00xxxxxxxxxx
+                                                                     sqinch.  */
+                                                                  return 1855;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 23) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x00111xxxx111000xxxxxxxxxx
-                                                                         inch.  */
-                                                                      return 1466;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x01111xxxx111000xxxxxxxxxx
-                                                                         incd.  */
-                                                                      return 1464;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x01110xxxx110x00xxxxxxxxxx
+                                                                     sqincd.  */
+                                                                  return 1852;
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 20) & 0x1) == 0)
+                                                          if (((word >> 22) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 22) & 0x1) == 0)
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0x011xxxx110x00xxxxxxxxxx
+                                                                 incw.  */
+                                                              return 1491;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 23) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x00010xxxx111100xxxxxxxxxx
-                                                                         sqincb.  */
-                                                                      return 1829;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x01010xxxx111100xxxxxxxxxx
-                                                                         sqincw.  */
-                                                                      return 1841;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 23) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x00110xxxx111100xxxxxxxxxx
-                                                                         sqinch.  */
-                                                                      return 1835;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x01110xxxx111100xxxxxxxxxx
-                                                                         sqincd.  */
-                                                                      return 1832;
-                                                                    }
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 22) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 23) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x00011xxxx111100xxxxxxxxxx
-                                                                         sqincb.  */
-                                                                      return 1828;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x01011xxxx111100xxxxxxxxxx
-                                                                         sqincw.  */
-                                                                      return 1840;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x00111xxxx110x00xxxxxxxxxx
+                                                                     inch.  */
+                                                                  return 1487;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 23) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x00111xxxx111100xxxxxxxxxx
-                                                                         sqinch.  */
-                                                                      return 1834;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x01111xxxx111100xxxxxxxxxx
-                                                                         sqincd.  */
-                                                                      return 1831;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x01111xxxx110x00xxxxxxxxxx
+                                                                     incd.  */
+                                                                  return 1485;
                                                                 }
                                                             }
                                                         }
                                                     }
                                                   else
                                                     {
                                                                 }
                                                             }
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 22) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 22) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 23) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x00010xxxx111x10xxxxxxxxxx
-                                                                     sqdecb.  */
-                                                                  return 1815;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x01010xxxx111x10xxxxxxxxxx
-                                                                     sqdecw.  */
-                                                                  return 1827;
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 23) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x00110xxxx111x10xxxxxxxxxx
-                                                                     sqdech.  */
-                                                                  return 1821;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x01110xxxx111x10xxxxxxxxxx
-                                                                     sqdecd.  */
-                                                                  return 1818;
-                                                                }
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0x01xxxxx110x10xxxxxxxxxx
+                                                             sqdecw.  */
+                                                          return 1847;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 22) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 23) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x00011xxxx111x10xxxxxxxxxx
-                                                                     sqdecb.  */
-                                                                  return 1814;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x01011xxxx111x10xxxxxxxxxx
-                                                                     sqdecw.  */
-                                                                  return 1826;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0011xxxxx110x10xxxxxxxxxx
+                                                                 sqdech.  */
+                                                              return 1841;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 23) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x00111xxxx111x10xxxxxxxxxx
-                                                                     sqdech.  */
-                                                                  return 1820;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x01111xxxx111x10xxxxxxxxxx
-                                                                     sqdecd.  */
-                                                                  return 1817;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0111xxxxx110x10xxxxxxxxxx
+                                                                 sqdecd.  */
+                                                              return 1838;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -5853,218 +5603,3075 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   if (((word >> 11) & 0x1) == 0)
                                                     {
                                                 {
                                                   if (((word >> 11) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 12) & 0x1) == 0)
+                                                      if (((word >> 20) & 0x1) == 0)
                                                         {
                                                           if (((word >> 22) & 0x1) == 0)
                                                         {
                                                           if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0x010xxxx110x01xxxxxxxxxx
+                                                                 uqincw.  */
+                                                              return 2009;
+                                                            }
+                                                          else
                                                             {
                                                               if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                             {
                                                               if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x0001xxxxx111001xxxxxxxxxx
-                                                                     decb.  */
-                                                                  return 1337;
+                                                                     000001x00110xxxx110x01xxxxxxxxxx
+                                                                     uqinch.  */
+                                                                  return 2003;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x0101xxxxx111001xxxxxxxxxx
-                                                                     decw.  */
-                                                                  return 1345;
+                                                                     000001x01110xxxx110x01xxxxxxxxxx
+                                                                     uqincd.  */
+                                                                  return 2000;
                                                                 }
                                                             }
                                                                 }
                                                             }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0x011xxxx110x01xxxxxxxxxx
+                                                                 decw.  */
+                                                              return 1366;
+                                                            }
                                                           else
                                                             {
                                                               if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                           else
                                                             {
                                                               if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x0011xxxxx111001xxxxxxxxxx
+                                                                     000001x00111xxxx110x01xxxxxxxxxx
                                                                      dech.  */
                                                                      dech.  */
-                                                                  return 1341;
+                                                                  return 1362;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x0111xxxxx111001xxxxxxxxxx
+                                                                     000001x01111xxxx110x01xxxxxxxxxx
                                                                      decd.  */
                                                                      decd.  */
-                                                                  return 1339;
+                                                                  return 1360;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0x01xxxxx110x11xxxxxxxxxx
+                                                             uqdecw.  */
+                                                          return 1995;
+                                                        }
                                                       else
                                                         {
                                                       else
                                                         {
-                                                          if (((word >> 20) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 22) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 23) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x00010xxxx111101xxxxxxxxxx
-                                                                         uqincb.  */
-                                                                      return 1976;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x01010xxxx111101xxxxxxxxxx
-                                                                         uqincw.  */
-                                                                      return 1988;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 23) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x00110xxxx111101xxxxxxxxxx
-                                                                         uqinch.  */
-                                                                      return 1982;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x01110xxxx111101xxxxxxxxxx
-                                                                         uqincd.  */
-                                                                      return 1979;
-                                                                    }
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0011xxxxx110x11xxxxxxxxxx
+                                                                 uqdech.  */
+                                                              return 1989;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 22) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 23) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x00011xxxx111101xxxxxxxxxx
-                                                                         uqincb.  */
-                                                                      return 1977;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x01011xxxx111101xxxxxxxxxx
-                                                                         uqincw.  */
-                                                                      return 1989;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 23) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x00111xxxx111101xxxxxxxxxx
-                                                                         uqinch.  */
-                                                                      return 1983;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x01111xxxx111101xxxxxxxxxx
-                                                                         uqincd.  */
-                                                                      return 1980;
-                                                                    }
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0111xxxxx110x11xxxxxxxxxx
+                                                                 uqdecd.  */
+                                                              return 1986;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 21) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0000xxxxx110xxxxxxxxxxxxx
+                                                         prfb.  */
+                                                      return 1766;
+                                                    }
                                                   else
                                                     {
                                                   else
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0100xxxxx110xxxxxxxxxxxxx
+                                                         prfh.  */
+                                                      return 1781;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0001xxxxx110xxxxxxxxxxxxx
+                                                         ld1b.  */
+                                                      return 1510;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0101xxxxx110xxxxxxxxxxxxx
+                                                         ld1h.  */
+                                                      return 1532;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x001xxxxxx110xxxxxxxxxxxxx
+                                                     ld1rb.  */
+                                                  return 1539;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x011xxxxxx110xxxxxxxxxxxxx
+                                                     ld1rh.  */
+                                                  return 1543;
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 21) & 0x1) == 0)
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x0000xxxxx110xxxxxxxxxxxxx
+                                                     ldnt1b.  */
+                                                  return 2092;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x0100xxxxx110xxxxxxxxxxxxx
+                                                     ldnt1h.  */
+                                                  return 2095;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x0010xxxxx110xxxxxxxxxxxxx
+                                                     ld1b.  */
+                                                  return 1509;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x0110xxxxx110xxxxxxxxxxxxx
+                                                     ld1h.  */
+                                                  return 1530;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x0001xxxxx110xxxxxxxxxxxxx
+                                                     ld1b.  */
+                                                  return 1515;
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 10) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 22) & 0x1) == 0)
+                                                          if (((word >> 12) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 23) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x00010xxxx111x11xxxxxxxxxx
-                                                                     uqdecb.  */
-                                                                  return 1962;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x01010xxxx111x11xxxxxxxxxx
-                                                                     uqdecw.  */
-                                                                  return 1974;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx1100x0xxxxxxxxxx
+                                                                 smullb.  */
+                                                              return 2157;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 23) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x00110xxxx111x11xxxxxxxxxx
-                                                                     uqdech.  */
-                                                                  return 1968;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x01110xxxx111x11xxxxxxxxxx
-                                                                     uqdecd.  */
-                                                                  return 1965;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx1101x0xxxxxxxxxx
+                                                                 umullb.  */
+                                                              return 2282;
                                                             }
                                                         }
                                                       else
                                                         {
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 22) & 0x1) == 0)
+                                                          if (((word >> 12) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 23) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x00011xxxx111x11xxxxxxxxxx
-                                                                     uqdecb.  */
-                                                                  return 1963;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x01011xxxx111x11xxxxxxxxxx
-                                                                     uqdecw.  */
-                                                                  return 1975;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx1100x1xxxxxxxxxx
+                                                                 smullt.  */
+                                                              return 2160;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 23) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x00111xxxx111x11xxxxxxxxxx
-                                                                     uqdech.  */
-                                                                  return 1969;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x01111xxxx111x11xxxxxxxxxx
-                                                                     uqdecd.  */
-                                                                  return 1966;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx1101x1xxxxxxxxxx
+                                                                 umullt.  */
+                                                              return 2285;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x0101xxxxx110xxxxxxxxxxxxx
+                                                         ld1h.  */
+                                                      return 1536;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x0011xxxxx110xxxxxxxxxxxxx
+                                                     prfw.  */
+                                                  return 1790;
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx1100x0xxxxxxxxxx
+                                                                 smullb.  */
+                                                              return 2158;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx1101x0xxxxxxxxxx
+                                                                 umullb.  */
+                                                              return 2283;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx1100x1xxxxxxxxxx
+                                                                 smullt.  */
+                                                              return 2161;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx1101x1xxxxxxxxxx
+                                                                 umullt.  */
+                                                              return 2286;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x0111xxxxx110xxxxxxxxxxxxx
+                                                         ld1h.  */
+                                                      return 1531;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                      else
+                        {
+                          if (((word >> 14) & 0x1) == 0)
+                            {
+                              if (((word >> 15) & 0x1) == 0)
+                                {
+                                  if (((word >> 21) & 0x1) == 0)
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 17) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 19) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 16) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx000x00001xxxxxxxxxxxxx
+                                                                 saddv.  */
+                                                              return 1810;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx000x01001xxxxxxxxxxxxx
+                                                                 uaddv.  */
+                                                              return 1962;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx010x0x001xxxxxxxxxxxxx
+                                                             movprfx.  */
+                                                          return 1745;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 16) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx001x00001xxxxxxxxxxxxx
+                                                                 smaxv.  */
+                                                              return 1828;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx011x00001xxxxxxxxxxxxx
+                                                                 orv.  */
+                                                              return 1762;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx001x01001xxxxxxxxxxxxx
+                                                                 umaxv.  */
+                                                              return 1977;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx011x01001xxxxxxxxxxxxx
+                                                                 eorv.  */
+                                                              return 1377;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 16) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx00xx10001xxxxxxxxxxxxx
+                                                             sminv.  */
+                                                          return 1831;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx01xx10001xxxxxxxxxxxxx
+                                                             andv.  */
+                                                          return 1290;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x0xx0xxx11001xxxxxxxxxxxxx
+                                                         uminv.  */
+                                                      return 1980;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x00x0xxxxx001xxxxxxxxxxxxx
+                                                     ldff1sb.  */
+                                                  return 1661;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x01x0xxxxx001xxxxxxxxxxxxx
+                                                     ldff1sh.  */
+                                                  return 1672;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 12) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     010001x0xx0xxxxx0010xxxxxxxxxxxx
+                                                     cmla.  */
+                                                  return 2062;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     010001x0xx0xxxxx0011xxxxxxxxxxxx
+                                                     sqrdcmlah.  */
+                                                  return 2194;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x00x0xxxxx001xxxxxxxxxxxxx
+                                                     ldff1sb.  */
+                                                  return 1668;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x01x0xxxxx001xxxxxxxxxxxxx
+                                                     ldff1sh.  */
+                                                  return 1678;
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 10) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0001xxxxx001x00xxxxxxxxxx
+                                                                 and.  */
+                                                              return 1285;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0101xxxxx001x00xxxxxxxxxx
+                                                                 eor.  */
+                                                              return 1372;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0011xxxxx001x00xxxxxxxxxx
+                                                                 orr.  */
+                                                              return 1757;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0111xxxxx001x00xxxxxxxxxx
+                                                                 bic.  */
+                                                              return 1298;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0x01xxxxx001x10xxxxxxxxxx
+                                                             eor3.  */
+                                                          return 2065;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0x11xxxxx001x10xxxxxxxxxx
+                                                             bcax.  */
+                                                          return 2054;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x0xx1xxxxx001x01xxxxxxxxxx
+                                                         xar.  */
+                                                      return 2327;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0001xxxxx001x11xxxxxxxxxx
+                                                                 bsl.  */
+                                                              return 2055;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0101xxxxx001x11xxxxxxxxxx
+                                                                 bsl2n.  */
+                                                              return 2057;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0011xxxxx001x11xxxxxxxxxx
+                                                                 bsl1n.  */
+                                                              return 2056;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0111xxxxx001x11xxxxxxxxxx
+                                                                 nbsl.  */
+                                                              return 2112;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x00x1xxxxx001xxxxxxxxxxxxx
+                                                     prfh.  */
+                                                  return 1780;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x01x1xxxxx001xxxxxxxxxxxxx
+                                                     ldff1sh.  */
+                                                  return 1673;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x10001x00x1xxxxx001xxxxxxxxxxxxx
+                                                 prfh.  */
+                                              return 1782;
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 31) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 10) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx0010x0xxxxxxxxxx
+                                                                 sqdmlalb.  */
+                                                              return 2167;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx0010x0xxxxxxxxxx
+                                                                 sqdmlalb.  */
+                                                              return 2168;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx0011x0xxxxxxxxxx
+                                                                 sqdmlslb.  */
+                                                              return 2174;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx0011x0xxxxxxxxxx
+                                                                 sqdmlslb.  */
+                                                              return 2175;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx0010x1xxxxxxxxxx
+                                                                 sqdmlalt.  */
+                                                              return 2171;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx0010x1xxxxxxxxxx
+                                                                 sqdmlalt.  */
+                                                              return 2172;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx0011x1xxxxxxxxxx
+                                                                 sqdmlslt.  */
+                                                              return 2178;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx0011x1xxxxxxxxxx
+                                                                 sqdmlslt.  */
+                                                              return 2179;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x01x1xxxxx001xxxxxxxxxxxxx
+                                                     ldff1sh.  */
+                                                  return 1679;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 30) & 0x1) == 0)
+                                    {
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          if (((word >> 21) & 0x1) == 0)
+                                            {
+                                              if (((word >> 16) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 17) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x0000101xxxxxxxxxxxxx
+                                                                 sxtb.  */
+                                                              return 1953;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x1000101xxxxxxxxxxxxx
+                                                                 cls.  */
+                                                              return 1318;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x0100101xxxxxxxxxxxxx
+                                                                 sxtw.  */
+                                                              return 1955;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x1100101xxxxxxxxxxxxx
+                                                                 fabs.  */
+                                                              return 1380;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x0010101xxxxxxxxxxxxx
+                                                                 sxth.  */
+                                                              return 1954;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x1010101xxxxxxxxxxxxx
+                                                                 cnt.  */
+                                                              return 1347;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x0110101xxxxxxxxxxxxx
+                                                                 abs.  */
+                                                              return 1276;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x1110101xxxxxxxxxxxxx
+                                                                 not.  */
+                                                              return 1754;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 17) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x0001101xxxxxxxxxxxxx
+                                                                 uxtb.  */
+                                                              return 2016;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x1001101xxxxxxxxxxxxx
+                                                                 clz.  */
+                                                              return 1319;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x0101101xxxxxxxxxxxxx
+                                                                 uxtw.  */
+                                                              return 2018;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x1101101xxxxxxxxxxxxx
+                                                                 fneg.  */
+                                                              return 1457;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x0011101xxxxxxxxxxxxx
+                                                                 uxth.  */
+                                                              return 2017;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx0x1011101xxxxxxxxxxxxx
+                                                                 cnot.  */
+                                                              return 1346;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx0xx111101xxxxxxxxxxxxx
+                                                             neg.  */
+                                                          return 1751;
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 12) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0001xxxxx1010xxxxxxxxxxxx
+                                                             adr.  */
+                                                          return 1282;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0011xxxxx1010xxxxxxxxxxxx
+                                                             adr.  */
+                                                          return 1283;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x01x1xxxxx1010xxxxxxxxxxxx
+                                                         adr.  */
+                                                      return 1284;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 10) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 11) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx1xxxxx101100xxxxxxxxxx
+                                                             ftssel.  */
+                                                          return 1483;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx1xxxxx101110xxxxxxxxxx
+                                                             fexpa.  */
+                                                          return 1427;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x0xx1xxxxx1011x1xxxxxxxxxx
+                                                         movprfx.  */
+                                                      return 1744;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 21) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0000xxxxx101xxxxxxxxxxxxx
+                                                         ldnt1b.  */
+                                                      return 2091;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0100xxxxx101xxxxxxxxxxxxx
+                                                         ldnt1h.  */
+                                                      return 2094;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0001xxxxx101xxxxxxxxxxxxx
+                                                         ldff1sb.  */
+                                                      return 1670;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0101xxxxx101xxxxxxxxxxxxx
+                                                         ldff1sh.  */
+                                                      return 1682;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x001xxxxxx101xxxxxxxxxxxxx
+                                                     ld1rb.  */
+                                                  return 1538;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x011xxxxxx101xxxxxxxxxxxxx
+                                                     ld1rh.  */
+                                                  return 1542;
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 21) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 16) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 17) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0xx0x0000101xxxxxxxxxxxxx
+                                                                 urecpe.  */
+                                                              return 2302;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0xx0x1000101xxxxxxxxxxxxx
+                                                                 sqabs.  */
+                                                              return 2164;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0xx00x100101xxxxxxxxxxxxx
+                                                                 sadalp.  */
+                                                              return 2128;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0xx01x100101xxxxxxxxxxxxx
+                                                                 smaxp.  */
+                                                              return 2142;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         010001x0xx0xxx10101xxxxxxxxxxxxx
+                                                         sminp.  */
+                                                      return 2143;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 17) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0xx000001101xxxxxxxxxxxxx
+                                                                     ursqrte.  */
+                                                                  return 2307;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0xx010001101xxxxxxxxxxxxx
+                                                                     addp.  */
+                                                                  return 2053;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0xx0x1001101xxxxxxxxxxxxx
+                                                                 sqneg.  */
+                                                              return 2191;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0xx00x101101xxxxxxxxxxxxx
+                                                                 uadalp.  */
+                                                              return 2259;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0xx01x101101xxxxxxxxxxxxx
+                                                                 umaxp.  */
+                                                              return 2267;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         010001x0xx0xxx11101xxxxxxxxxxxxx
+                                                         uminp.  */
+                                                      return 2268;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x00x0xxxxx101xxxxxxxxxxxxx
+                                                     ldff1sb.  */
+                                                  return 1669;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x01x0xxxxx101xxxxxxxxxxxxx
+                                                     ldff1sh.  */
+                                                  return 1680;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x0001xxxxx101xxxxxxxxxxxxx
+                                                     ldff1sb.  */
+                                                  return 1671;
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx1010x0xxxxxxxxxx
+                                                                 smlslb.  */
+                                                              return 2150;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx1011x0xxxxxxxxxx
+                                                                 umlslb.  */
+                                                              return 2275;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx1010x1xxxxxxxxxx
+                                                                 smlslt.  */
+                                                              return 2153;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx1011x1xxxxxxxxxx
+                                                                 umlslt.  */
+                                                              return 2278;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x0101xxxxx101xxxxxxxxxxxxx
+                                                         ldff1sh.  */
+                                                      return 1683;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x0011xxxxx101xxxxxxxxxxxxx
+                                                     prfh.  */
+                                                  return 1783;
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx1010x0xxxxxxxxxx
+                                                                 smlslb.  */
+                                                              return 2151;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx1011x0xxxxxxxxxx
+                                                                 umlslb.  */
+                                                              return 2276;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx1010x1xxxxxxxxxx
+                                                                 smlslt.  */
+                                                              return 2154;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx1011x1xxxxxxxxxx
+                                                                 umlslt.  */
+                                                              return 2279;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x0111xxxxx101xxxxxxxxxxxxx
+                                                         ldff1sh.  */
+                                                      return 1681;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                          else
+                            {
+                              if (((word >> 15) & 0x1) == 0)
+                                {
+                                  if (((word >> 21) & 0x1) == 0)
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 000001x0xx0xxxxx011xxxxxxxxxxxxx
+                                                 mls.  */
+                                              return 1743;
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x00x0xxxxx011xxxxxxxxxxxxx
+                                                     ldff1b.  */
+                                                  return 1627;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x01x0xxxxx011xxxxxxxxxxxxx
+                                                     ldff1h.  */
+                                                  return 1647;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 10) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx011000xxxxxxxxxx
+                                                             sqdmlalb.  */
+                                                          return 2169;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx011100xxxxxxxxxx
+                                                             sqrdmlah.  */
+                                                          return 2198;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx011010xxxxxxxxxx
+                                                             sqdmlslb.  */
+                                                          return 2176;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx011110xxxxxxxxxx
+                                                             usdot.  */
+                                                          return 2396;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx011001xxxxxxxxxx
+                                                             sqdmlalt.  */
+                                                          return 2173;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0xx0xxxxx011101xxxxxxxxxx
+                                                             sqrdmlsh.  */
+                                                          return 2202;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         010001x0xx0xxxxx011x11xxxxxxxxxx
+                                                         sqdmlslt.  */
+                                                      return 2180;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x00x0xxxxx011xxxxxxxxxxxxx
+                                                     ldff1b.  */
+                                                  return 1636;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x01x0xxxxx011xxxxxxxxxxxxx
+                                                     ldff1h.  */
+                                                  return 1655;
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 10) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx1xxxxx011000xxxxxxxxxx
+                                                             mul.  */
+                                                          return 2111;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx1xxxxx011100xxxxxxxxxx
+                                                             sqdmulh.  */
+                                                          return 2184;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x0xx1xxxxx011x10xxxxxxxxxx
+                                                         smulh.  */
+                                                      return 2156;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx1xxxxx011001xxxxxxxxxx
+                                                             pmul.  */
+                                                          return 2114;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx1xxxxx011101xxxxxxxxxx
+                                                             sqrdmulh.  */
+                                                          return 2206;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x0xx1xxxxx011x11xxxxxxxxxx
+                                                         umulh.  */
+                                                      return 2281;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x00x1xxxxx011xxxxxxxxxxxxx
+                                                     prfd.  */
+                                                  return 1773;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x01x1xxxxx011xxxxxxxxxxxxx
+                                                     ldff1h.  */
+                                                  return 1648;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x10001x00x1xxxxx011xxxxxxxxxxxxx
+                                                 prfd.  */
+                                              return 1775;
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 31) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 12) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0101xxxxx0110xxxxxxxxxxxx
+                                                             cmla.  */
+                                                          return 2063;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0111xxxxx0110xxxxxxxxxxxx
+                                                             cmla.  */
+                                                          return 2064;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0101xxxxx0111xxxxxxxxxxxx
+                                                             sqrdcmlah.  */
+                                                          return 2192;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0111xxxxx0111xxxxxxxxxxxx
+                                                             sqrdcmlah.  */
+                                                          return 2193;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x01x1xxxxx011xxxxxxxxxxxxx
+                                                     ldff1h.  */
+                                                  return 1656;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 30) & 0x1) == 0)
+                                    {
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          if (((word >> 21) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 000001x0xx0xxxxx111xxxxxxxxxxxxx
+                                                 msb.  */
+                                              return 1746;
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 10) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 22) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x00010xxxx111000xxxxxxxxxx
+                                                                         cntb.  */
+                                                                      return 1348;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x01010xxxx111000xxxxxxxxxx
+                                                                         cntw.  */
+                                                                      return 1352;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x00110xxxx111000xxxxxxxxxx
+                                                                         cnth.  */
+                                                                      return 1350;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x01110xxxx111000xxxxxxxxxx
+                                                                         cntd.  */
+                                                                      return 1349;
+                                                                    }
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 22) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x00011xxxx111000xxxxxxxxxx
+                                                                         incb.  */
+                                                                      return 1484;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x01011xxxx111000xxxxxxxxxx
+                                                                         incw.  */
+                                                                      return 1492;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x00111xxxx111000xxxxxxxxxx
+                                                                         inch.  */
+                                                                      return 1488;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x01111xxxx111000xxxxxxxxxx
+                                                                         incd.  */
+                                                                      return 1486;
+                                                                    }
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 22) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x00010xxxx111100xxxxxxxxxx
+                                                                         sqincb.  */
+                                                                      return 1851;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x01010xxxx111100xxxxxxxxxx
+                                                                         sqincw.  */
+                                                                      return 1863;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x00110xxxx111100xxxxxxxxxx
+                                                                         sqinch.  */
+                                                                      return 1857;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x01110xxxx111100xxxxxxxxxx
+                                                                         sqincd.  */
+                                                                      return 1854;
+                                                                    }
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 22) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x00011xxxx111100xxxxxxxxxx
+                                                                         sqincb.  */
+                                                                      return 1850;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x01011xxxx111100xxxxxxxxxx
+                                                                         sqincw.  */
+                                                                      return 1862;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x00111xxxx111100xxxxxxxxxx
+                                                                         sqinch.  */
+                                                                      return 1856;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x01111xxxx111100xxxxxxxxxx
+                                                                         sqincd.  */
+                                                                      return 1853;
+                                                                    }
+                                                                }
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x00010xxxx111x10xxxxxxxxxx
+                                                                     sqdecb.  */
+                                                                  return 1837;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x01010xxxx111x10xxxxxxxxxx
+                                                                     sqdecw.  */
+                                                                  return 1849;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x00110xxxx111x10xxxxxxxxxx
+                                                                     sqdech.  */
+                                                                  return 1843;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x01110xxxx111x10xxxxxxxxxx
+                                                                     sqdecd.  */
+                                                                  return 1840;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x00011xxxx111x10xxxxxxxxxx
+                                                                     sqdecb.  */
+                                                                  return 1836;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x01011xxxx111x10xxxxxxxxxx
+                                                                     sqdecw.  */
+                                                                  return 1848;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x00111xxxx111x10xxxxxxxxxx
+                                                                     sqdech.  */
+                                                                  return 1842;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x01111xxxx111x10xxxxxxxxxx
+                                                                     sqdecd.  */
+                                                                  return 1839;
+                                                                }
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0001xxxxx111001xxxxxxxxxx
+                                                                     decb.  */
+                                                                  return 1359;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0101xxxxx111001xxxxxxxxxx
+                                                                     decw.  */
+                                                                  return 1367;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0011xxxxx111001xxxxxxxxxx
+                                                                     dech.  */
+                                                                  return 1363;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x0111xxxxx111001xxxxxxxxxx
+                                                                     decd.  */
+                                                                  return 1361;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 22) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x00010xxxx111101xxxxxxxxxx
+                                                                         uqincb.  */
+                                                                      return 1998;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x01010xxxx111101xxxxxxxxxx
+                                                                         uqincw.  */
+                                                                      return 2010;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x00110xxxx111101xxxxxxxxxx
+                                                                         uqinch.  */
+                                                                      return 2004;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x01110xxxx111101xxxxxxxxxx
+                                                                         uqincd.  */
+                                                                      return 2001;
+                                                                    }
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 22) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x00011xxxx111101xxxxxxxxxx
+                                                                         uqincb.  */
+                                                                      return 1999;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x01011xxxx111101xxxxxxxxxx
+                                                                         uqincw.  */
+                                                                      return 2011;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x00111xxxx111101xxxxxxxxxx
+                                                                         uqinch.  */
+                                                                      return 2005;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x01111xxxx111101xxxxxxxxxx
+                                                                         uqincd.  */
+                                                                      return 2002;
+                                                                    }
+                                                                }
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x00010xxxx111x11xxxxxxxxxx
+                                                                     uqdecb.  */
+                                                                  return 1984;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x01010xxxx111x11xxxxxxxxxx
+                                                                     uqdecw.  */
+                                                                  return 1996;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x00110xxxx111x11xxxxxxxxxx
+                                                                     uqdech.  */
+                                                                  return 1990;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x01110xxxx111x11xxxxxxxxxx
+                                                                     uqdecd.  */
+                                                                  return 1987;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x00011xxxx111x11xxxxxxxxxx
+                                                                     uqdecb.  */
+                                                                  return 1985;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x01011xxxx111x11xxxxxxxxxx
+                                                                     uqdecw.  */
+                                                                  return 1997;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x00111xxxx111x11xxxxxxxxxx
+                                                                     uqdech.  */
+                                                                  return 1991;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x01111xxxx111x11xxxxxxxxxx
+                                                                     uqdecd.  */
+                                                                  return 1988;
+                                                                }
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 21) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0000xxxxx111xxxxxxxxxxxxx
+                                                         prfb.  */
+                                                      return 1770;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0100xxxxx111xxxxxxxxxxxxx
+                                                         prfh.  */
+                                                      return 1784;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0001xxxxx111xxxxxxxxxxxxx
+                                                         ldff1b.  */
+                                                      return 1638;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x0101xxxxx111xxxxxxxxxxxxx
+                                                         ldff1h.  */
+                                                      return 1659;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x001xxxxxx111xxxxxxxxxxxxx
+                                                     ld1rb.  */
+                                                  return 1540;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x011xxxxxx111xxxxxxxxxxxxx
+                                                     ld1rh.  */
+                                                  return 1544;
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 21) & 0x1) == 0)
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x0000xxxxx111xxxxxxxxxxxxx
+                                                     prfb.  */
+                                                  return 1772;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x0100xxxxx111xxxxxxxxxxxxx
+                                                     prfh.  */
+                                                  return 1786;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x0010xxxxx111xxxxxxxxxxxxx
+                                                     ldff1b.  */
+                                                  return 1637;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x0110xxxxx111xxxxxxxxxxxxx
+                                                     ldff1h.  */
+                                                  return 1657;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              if (((word >> 31) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 10) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 11) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x00x1xxxxx111x00xxxxxxxxxx
+                                                             sqdmulh.  */
+                                                          return 2181;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x00x1xxxxx111x10xxxxxxxxxx
+                                                             mul.  */
+                                                          return 2108;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         010001x00x1xxxxx111xx1xxxxxxxxxx
+                                                         sqrdmulh.  */
+                                                      return 2203;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x0001xxxxx111xxxxxxxxxxxxx
+                                                         ldff1b.  */
+                                                      return 1639;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x0011xxxxx111xxxxxxxxxxxxx
+                                                         prfd.  */
+                                                      return 1776;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx1110x0xxxxxxxxxx
+                                                                 sqdmullb.  */
+                                                              return 2185;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 11) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0101xxxxx111100xxxxxxxxxx
+                                                                     sqdmulh.  */
+                                                                  return 2182;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0101xxxxx111110xxxxxxxxxx
+                                                                     mul.  */
+                                                                  return 2109;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx1110x1xxxxxxxxxx
+                                                                 sqdmullt.  */
+                                                              return 2188;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0101xxxxx1111x1xxxxxxxxxx
+                                                                 sqrdmulh.  */
+                                                              return 2204;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x0101xxxxx111xxxxxxxxxxxxx
+                                                         ldff1h.  */
+                                                      return 1660;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx1110x0xxxxxxxxxx
+                                                                 sqdmullb.  */
+                                                              return 2186;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 11) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0111xxxxx111100xxxxxxxxxx
+                                                                     sqdmulh.  */
+                                                                  return 2183;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x0111xxxxx111110xxxxxxxxxx
+                                                                     mul.  */
+                                                                  return 2110;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx1110x1xxxxxxxxxx
+                                                                 sqdmullt.  */
+                                                              return 2189;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x0111xxxxx1111x1xxxxxxxxxx
+                                                                 sqrdmulh.  */
+                                                              return 2205;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x0111xxxxx111xxxxxxxxxxxxx
+                                                         ldff1h.  */
+                                                      return 1658;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                  else
+                    {
+                      if (((word >> 21) & 0x1) == 0)
+                        {
+                          if (((word >> 15) & 0x1) == 0)
+                            {
+                              if (((word >> 30) & 0x1) == 0)
+                                {
+                                  if (((word >> 13) & 0x1) == 0)
+                                    {
+                                      if (((word >> 14) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx000xxxxxxxx0xxxx
+                                                     cmphs.  */
+                                                  return 1332;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx000xxxxxxxx1xxxx
+                                                     cmphi.  */
+                                                  return 1329;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x00x0xxxxx000xxxxxxxxxxxxx
+                                                     ld1rqb.  */
+                                                  return 1546;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x01x0xxxxx000xxxxxxxxxxxxx
+                                                     ld1rqh.  */
+                                                  return 1550;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx010xxxxxxxx0xxxx
+                                                     cmpge.  */
+                                                  return 1323;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx010xxxxxxxx1xxxx
+                                                     cmpgt.  */
+                                                  return 1326;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0000xxxxx010xxxxxxxxxxxxx
+                                                         ld1b.  */
+                                                      return 1504;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0100xxxxx010xxxxxxxxxxxxx
+                                                         ld1sw.  */
+                                                      return 1584;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0010xxxxx010xxxxxxxxxxxxx
+                                                         ld1b.  */
+                                                      return 1506;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0110xxxxx010xxxxxxxxxxxxx
+                                                         ld1h.  */
+                                                      return 1526;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 14) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx001xxxxxxxx0xxxx
+                                                     cmpeq.  */
+                                                  return 1320;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx001xxxxxxxx1xxxx
+                                                     cmpne.  */
+                                                  return 1343;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x00x0xxxxx001xxxxxxxxxxxxx
+                                                     ld1rqb.  */
+                                                  return 1545;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x01x0xxxxx001xxxxxxxxxxxxx
+                                                     ld1rqh.  */
+                                                  return 1549;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx011xxxxxxxx0xxxx
+                                                     cmplt.  */
+                                                  return 1341;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx011xxxxxxxx1xxxx
+                                                     cmple.  */
+                                                  return 1335;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0000xxxxx011xxxxxxxxxxxxx
+                                                         ldff1b.  */
+                                                      return 1628;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0100xxxxx011xxxxxxxxxxxxx
+                                                         ldff1sw.  */
+                                                      return 1684;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0010xxxxx011xxxxxxxxxxxxx
+                                                         ldff1b.  */
+                                                      return 1632;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0110xxxxx011xxxxxxxxxxxxx
+                                                         ldff1h.  */
+                                                      return 1651;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         011001x0xx0xxxxx0xxxxxxxxxxxxxxx
+                                         fcmla.  */
+                                      return 1389;
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 13) & 0x1) == 0)
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 111001x0x00xxxxx0x0xxxxxxxxxxxxx
+                                                 st1b.  */
+                                              return 1866;
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x0010xxxxx0x0xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1870;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x0110xxxxx0x0xxxxxxxxxxxxx
+                                                     st1h.  */
+                                                  return 1891;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 14) & 0x1) == 0)
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x0000xxxxx001xxxxxxxxxxxxx
+                                                         stnt1b.  */
+                                                      return 2243;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x0100xxxxx001xxxxxxxxxxxxx
+                                                         stnt1h.  */
+                                                      return 2246;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x0010xxxxx001xxxxxxxxxxxxx
+                                                         stnt1b.  */
+                                                      return 2242;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x0110xxxxx001xxxxxxxxxxxxx
+                                                         stnt1h.  */
+                                                      return 2245;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x0000xxxxx011xxxxxxxxxxxxx
+                                                         stnt1b.  */
+                                                      return 1936;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x0100xxxxx011xxxxxxxxxxxxx
+                                                         stnt1h.  */
+                                                      return 1940;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x0010xxxxx011xxxxxxxxxxxxx
+                                                         st3b.  */
+                                                      return 1920;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x0110xxxxx011xxxxxxxxxxxxx
+                                                         st3h.  */
+                                                      return 1924;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                          else
+                            {
+                              if (((word >> 13) & 0x1) == 0)
+                                {
+                                  if (((word >> 30) & 0x1) == 0)
+                                    {
+                                      if (((word >> 14) & 0x1) == 0)
+                                        {
+                                          if (((word >> 4) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x01001x0xx0xxxxx100xxxxxxxx0xxxx
+                                                 cmpge.  */
+                                              return 1324;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x01001x0xx0xxxxx100xxxxxxxx1xxxx
+                                                 cmpgt.  */
+                                              return 1327;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx110xxxxxxxx0xxxx
+                                                     cmphs.  */
+                                                  return 1333;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx110xxxxxxxx1xxxx
+                                                     cmphi.  */
+                                                  return 1330;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0000xxxxx110xxxxxxxxxxxxx
+                                                         ldnt1b.  */
+                                                      return 1719;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0100xxxxx110xxxxxxxxxxxxx
+                                                         ldnt1h.  */
+                                                      return 1723;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0010xxxxx110xxxxxxxxxxxxx
+                                                         ld3b.  */
+                                                      return 1611;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0110xxxxx110xxxxxxxxxxxxx
+                                                         ld3h.  */
+                                                      return 1615;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          if (((word >> 17) & 0x1) == 0)
+                                            {
+                                              if (((word >> 18) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 20) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         011001x0xx00x00x1x0xxxxxxxxxxxxx
+                                                         fcadd.  */
+                                                      return 1388;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         011001x0xx01x00x1x0xxxxxxxxxxxxx
+                                                         faddp.  */
+                                                      return 2069;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 16) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         011001x0xx0xx1001x0xxxxxxxxxxxxx
+                                                         fmaxnmp.  */
+                                                      return 2077;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         011001x0xx0xx1011x0xxxxxxxxxxxxx
+                                                         fminnmp.  */
+                                                      return 2079;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 16) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     011001x0xx0xxx101x0xxxxxxxxxxxxx
+                                                     fmaxp.  */
+                                                  return 2078;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     011001x0xx0xxx111x0xxxxxxxxxxxxx
+                                                     fminp.  */
+                                                  return 2080;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x0000xxxxx1x0xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1867;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x0100xxxxx1x0xxxxxxxxxxxxx
+                                                     st1h.  */
+                                                  return 1886;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x0010xxxxx1x0xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1871;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x0110xxxxx1x0xxxxxxxxxxxxx
+                                                     st1h.  */
+                                                  return 1892;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 14) & 0x1) == 0)
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx101xxxxxxxx0xxxx
+                                                     cmpeq.  */
+                                                  return 1321;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx101xxxxxxxx1xxxx
+                                                     cmpne.  */
+                                                  return 1344;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 20) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x00000xxxx101xxxxxxxxxxxxx
+                                                             ld1b.  */
+                                                          return 1511;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x01000xxxx101xxxxxxxxxxxxx
+                                                             ld1sw.  */
+                                                          return 1589;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x00100xxxx101xxxxxxxxxxxxx
+                                                             ld1b.  */
+                                                          return 1513;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x01100xxxx101xxxxxxxxxxxxx
+                                                             ld1h.  */
+                                                          return 1534;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x00001xxxx101xxxxxxxxxxxxx
+                                                             ldnf1b.  */
+                                                          return 1703;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x01001xxxx101xxxxxxxxxxxxx
+                                                             ldnf1sw.  */
+                                                          return 1716;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x00101xxxx101xxxxxxxxxxxxx
+                                                             ldnf1b.  */
+                                                          return 1705;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x01101xxxx101xxxxxxxxxxxxx
+                                                             ldnf1h.  */
+                                                          return 1709;
+                                                        }
+                                                    }
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -6072,42 +8679,64 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           if (((word >> 22) & 0x1) == 0)
                                             {
                                         {
                                           if (((word >> 22) & 0x1) == 0)
                                             {
-                                              if (((word >> 21) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 31) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         100001x0000xxxxx111xxxxxxxxxxxxx
-                                                         prfb.  */
-                                                      return 1748;
+                                                         011001x0000xxxxx101xxxxxxxxxxxxx
+                                                         fcvtxnt.  */
+                                                      return 2075;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         100001x0100xxxxx111xxxxxxxxxxxxx
-                                                         prfh.  */
-                                                      return 1762;
+                                                         111001x0000xxxxx101xxxxxxxxxxxxx
+                                                         st1b.  */
+                                                      return 1868;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 31) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         100001x0001xxxxx111xxxxxxxxxxxxx
-                                                         ldff1b.  */
-                                                      return 1616;
+                                                      if (((word >> 16) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 17) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 011001x0100xxx00101xxxxxxxxxxxxx
+                                                                 fcvtnt.  */
+                                                              return 2072;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 011001x0100xxx10101xxxxxxxxxxxxx
+                                                                 bfcvtnt.  */
+                                                              return 2425;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0100xxxx1101xxxxxxxxxxxxx
+                                                             fcvtlt.  */
+                                                          return 2070;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         100001x0101xxxxx111xxxxxxxxxxxxx
-                                                         ldff1h.  */
-                                                      return 1637;
+                                                         111001x0100xxxxx101xxxxxxxxxxxxx
+                                                         st1h.  */
+                                                      return 1887;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -6117,102 +8746,179 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     100001x001xxxxxx111xxxxxxxxxxxxx
-                                                     ld1rb.  */
-                                                  return 1518;
+                                                     x11001x0010xxxxx101xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1875;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x011xxxxxx111xxxxxxxxxxxxx
-                                                     ld1rh.  */
-                                                  return 1522;
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 16) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0110xxxx0101xxxxxxxxxxxxx
+                                                             fcvtnt.  */
+                                                          return 2073;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0110xxxx1101xxxxxxxxxxxxx
+                                                             fcvtlt.  */
+                                                          return 2071;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x0110xxxxx101xxxxxxxxxxxxx
+                                                         st1h.  */
+                                                      return 1896;
+                                                    }
                                                 }
                                             }
                                         }
                                     }
                                   else
                                     {
                                                 }
                                             }
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 21) & 0x1) == 0)
+                                      if (((word >> 30) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 4) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x10001x0000xxxxx111xxxxxxxxxxxxx
-                                                     prfb.  */
-                                                  return 1750;
+                                                     001001x0xx0xxxxx111xxxxxxxx0xxxx
+                                                     cmplo.  */
+                                                  return 1337;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x10001x0100xxxxx111xxxxxxxxxxxxx
-                                                     prfh.  */
-                                                  return 1764;
+                                                     001001x0xx0xxxxx111xxxxxxxx1xxxx
+                                                     cmpls.  */
+                                                  return 1339;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0010xxxxx111xxxxxxxxxxxxx
-                                                     ldff1b.  */
-                                                  return 1615;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0000xxxxx111xxxxxxxxxxxxx
+                                                         ldnt1b.  */
+                                                      return 1720;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0100xxxxx111xxxxxxxxxxxxx
+                                                         ldnt1h.  */
+                                                      return 1724;
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0110xxxxx111xxxxxxxxxxxxx
-                                                     ldff1h.  */
-                                                  return 1635;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0010xxxxx111xxxxxxxxxxxxx
+                                                         ld3b.  */
+                                                      return 1612;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0110xxxxx111xxxxxxxxxxxxx
+                                                         ld3h.  */
+                                                      return 1616;
+                                                    }
                                                 }
                                             }
                                         }
                                       else
                                         {
                                                 }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 20) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x10001x0001xxxxx111xxxxxxxxxxxxx
-                                                     ldff1b.  */
-                                                  return 1617;
+                                                     x11001x0x000xxxx111xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1873;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0101xxxxx111xxxxxxxxxxxxx
-                                                     ldff1h.  */
-                                                  return 1638;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x00100xxxx111xxxxxxxxxxxxx
+                                                         st1b.  */
+                                                      return 1876;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x01100xxxx111xxxxxxxxxxxxx
+                                                         st1h.  */
+                                                      return 1897;
+                                                    }
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0011xxxxx111xxxxxxxxxxxxx
-                                                     prfd.  */
-                                                  return 1754;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x00001xxxx111xxxxxxxxxxxxx
+                                                         stnt1b.  */
+                                                      return 1937;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x01001xxxx111xxxxxxxxxxxxx
+                                                         stnt1h.  */
+                                                      return 1941;
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x0111xxxxx111xxxxxxxxxxxxx
-                                                     ldff1h.  */
-                                                  return 1636;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x00101xxxx111xxxxxxxxxxxxx
+                                                         st3b.  */
+                                                      return 1921;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x01101xxxx111xxxxxxxxxxxxx
+                                                         st3h.  */
+                                                      return 1925;
+                                                    }
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -6220,80 +8926,55 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 }
                             }
                         }
                                 }
                             }
                         }
-                    }
-                  else
-                    {
-                      if (((word >> 21) & 0x1) == 0)
+                      else
                         {
                         {
-                          if (((word >> 15) & 0x1) == 0)
+                          if (((word >> 13) & 0x1) == 0)
                             {
                               if (((word >> 30) & 0x1) == 0)
                                 {
                             {
                               if (((word >> 30) & 0x1) == 0)
                                 {
-                                  if (((word >> 13) & 0x1) == 0)
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      if (((word >> 4) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             001001x0xx1xxxxxxx0xxxxxxxx0xxxx
+                                             cmphs.  */
+                                          return 1334;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             001001x0xx1xxxxxxx0xxxxxxxx1xxxx
+                                             cmphi.  */
+                                          return 1331;
+                                        }
+                                    }
+                                  else
                                     {
                                       if (((word >> 14) & 0x1) == 0)
                                         {
                                     {
                                       if (((word >> 14) & 0x1) == 0)
                                         {
-                                          if (((word >> 31) & 0x1) == 0)
+                                          if (((word >> 23) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 4) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     001001x0xx0xxxxx000xxxxxxxx0xxxx
-                                                     cmphs.  */
-                                                  return 1310;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     001001x0xx0xxxxx000xxxxxxxx1xxxx
-                                                     cmphi.  */
-                                                  return 1307;
-                                                }
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 101001x00x1xxxxxx00xxxxxxxxxxxxx
+                                                 ld1rob.  */
+                                              return 2401;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x00x0xxxxx000xxxxxxxxxxxxx
-                                                     ld1rqb.  */
-                                                  return 1524;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x01x0xxxxx000xxxxxxxxxxxxx
-                                                     ld1rqh.  */
-                                                  return 1528;
-                                                }
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 101001x01x1xxxxxx00xxxxxxxxxxxxx
+                                                 ld1roh.  */
+                                              return 2402;
                                             }
                                         }
                                       else
                                         {
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 31) & 0x1) == 0)
-                                            {
-                                              if (((word >> 4) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     001001x0xx0xxxxx010xxxxxxxx0xxxx
-                                                     cmpge.  */
-                                                  return 1301;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     001001x0xx0xxxxx010xxxxxxxx1xxxx
-                                                     cmpgt.  */
-                                                  return 1304;
-                                                }
-                                            }
-                                          else
+                                          if (((word >> 15) & 0x1) == 0)
                                             {
                                               if (((word >> 22) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 22) & 0x1) == 0)
                                                 {
@@ -6301,17 +8982,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0000xxxxx010xxxxxxxxxxxxx
+                                                         101001x0001xxxxx010xxxxxxxxxxxxx
                                                          ld1b.  */
                                                          ld1b.  */
-                                                      return 1482;
+                                                      return 1505;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0100xxxxx010xxxxxxxxxxxxx
-                                                         ld1sw.  */
-                                                      return 1562;
+                                                         101001x0101xxxxx010xxxxxxxxxxxxx
+                                                         ld1h.  */
+                                                      return 1525;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -6320,86 +9001,20 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0010xxxxx010xxxxxxxxxxxxx
+                                                         101001x0011xxxxx010xxxxxxxxxxxxx
                                                          ld1b.  */
                                                          ld1b.  */
-                                                      return 1484;
+                                                      return 1507;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0110xxxxx010xxxxxxxxxxxxx
+                                                         101001x0111xxxxx010xxxxxxxxxxxxx
                                                          ld1h.  */
                                                          ld1h.  */
-                                                      return 1504;
+                                                      return 1527;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
-                                        {
-                                          if (((word >> 31) & 0x1) == 0)
-                                            {
-                                              if (((word >> 4) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     001001x0xx0xxxxx001xxxxxxxx0xxxx
-                                                     cmpeq.  */
-                                                  return 1298;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     001001x0xx0xxxxx001xxxxxxxx1xxxx
-                                                     cmpne.  */
-                                                  return 1321;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x00x0xxxxx001xxxxxxxxxxxxx
-                                                     ld1rqb.  */
-                                                  return 1523;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x01x0xxxxx001xxxxxxxxxxxxx
-                                                     ld1rqh.  */
-                                                  return 1527;
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 31) & 0x1) == 0)
-                                            {
-                                              if (((word >> 4) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     001001x0xx0xxxxx011xxxxxxxx0xxxx
-                                                     cmplt.  */
-                                                  return 1319;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     001001x0xx0xxxxx011xxxxxxxx1xxxx
-                                                     cmple.  */
-                                                  return 1313;
-                                                }
-                                            }
                                           else
                                             {
                                               if (((word >> 22) & 0x1) == 0)
                                           else
                                             {
                                               if (((word >> 22) & 0x1) == 0)
@@ -6408,17 +9023,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0000xxxxx011xxxxxxxxxxxxx
-                                                         ldff1b.  */
-                                                      return 1606;
+                                                         101001x0001xxxxx110xxxxxxxxxxxxx
+                                                         ld2b.  */
+                                                      return 1603;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0100xxxxx011xxxxxxxxxxxxx
-                                                         ldff1sw.  */
-                                                      return 1662;
+                                                         101001x0101xxxxx110xxxxxxxxxxxxx
+                                                         ld2h.  */
+                                                      return 1607;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -6427,17 +9042,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0010xxxxx011xxxxxxxxxxxxx
-                                                         ldff1b.  */
-                                                      return 1610;
+                                                         101001x0011xxxxx110xxxxxxxxxxxxx
+                                                         ld4b.  */
+                                                      return 1619;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0110xxxxx011xxxxxxxxxxxxx
-                                                         ldff1h.  */
-                                                      return 1629;
+                                                         101001x0111xxxxx110xxxxxxxxxxxxx
+                                                         ld4h.  */
+                                                      return 1623;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -6446,174 +9061,185 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 }
                               else
                                 {
                                 }
                               else
                                 {
-                                  if (((word >> 31) & 0x1) == 0)
-                                    {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         011001x0xx0xxxxx0xxxxxxxxxxxxxxx
-                                         fcmla.  */
-                                      return 1367;
-                                    }
-                                  else
+                                  if (((word >> 15) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 111001x0x00xxxxx0x0xxxxxxxxxxxxx
-                                                 st1b.  */
-                                              return 1844;
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     111001x0010xxxxx0x0xxxxxxxxxxxxx
-                                                     st1b.  */
-                                                  return 1848;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     111001x0110xxxxx0x0xxxxxxxxxxxxx
-                                                     st1h.  */
-                                                  return 1869;
-                                                }
-                                            }
-                                        }
-                                      else
+                                      if (((word >> 14) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 10) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     111001x0000xxxxx0x1xxxxxxxxxxxxx
-                                                     stnt1b.  */
-                                                  return 1914;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x00x1xxxxx0000x0xxxxxxxxxx
+                                                         fmla.  */
+                                                      return 1442;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x11001x0101xxxxx0000x0xxxxxxxxxx
+                                                             fmla.  */
+                                                          return 1443;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x11001x0111xxxxx0000x0xxxxxxxxxx
+                                                             fmla.  */
+                                                          return 1444;
+                                                        }
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     111001x0100xxxxx0x1xxxxxxxxxxxxx
-                                                     stnt1h.  */
-                                                  return 1918;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x00x1xxxxx0000x1xxxxxxxxxx
+                                                         fmls.  */
+                                                      return 1446;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x11001x0101xxxxx0000x1xxxxxxxxxx
+                                                             fmls.  */
+                                                          return 1447;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x11001x0111xxxxx0000x1xxxxxxxxxx
+                                                             fmls.  */
+                                                          return 1448;
+                                                        }
+                                                    }
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     111001x0010xxxxx0x1xxxxxxxxxxxxx
-                                                     st3b.  */
-                                                  return 1898;
+                                                     x11001x0x01xxxxx0001xxxxxxxxxxxx
+                                                     fcmla.  */
+                                                  return 1390;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     111001x0110xxxxx0x1xxxxxxxxxxxxx
-                                                     st3h.  */
-                                                  return 1902;
+                                                     x11001x0x11xxxxx0001xxxxxxxxxxxx
+                                                     fcmla.  */
+                                                  return 1391;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
-                                    }
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 13) & 0x1) == 0)
-                                {
-                                  if (((word >> 30) & 0x1) == 0)
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
-                                        {
-                                          if (((word >> 4) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x01001x0xx0xxxxx100xxxxxxxx0xxxx
-                                                 cmpge.  */
-                                              return 1302;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x01001x0xx0xxxxx100xxxxxxxx1xxxx
-                                                 cmpgt.  */
-                                              return 1305;
-                                            }
-                                        }
                                       else
                                         {
                                       else
                                         {
-                                          if (((word >> 31) & 0x1) == 0)
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 4) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     001001x0xx0xxxxx110xxxxxxxx0xxxx
-                                                     cmphs.  */
-                                                  return 1311;
+                                                     x11001x0001xxxxx010xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1869;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     001001x0xx0xxxxx110xxxxxxxx1xxxx
-                                                     cmphi.  */
-                                                  return 1308;
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0101xxxxx010xx0xxxxxxxxxx
+                                                             fmlalb.  */
+                                                          return 2081;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0101xxxxx010xx1xxxxxxxxxx
+                                                             fmlalt.  */
+                                                          return 2083;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x0101xxxxx010xxxxxxxxxxxxx
+                                                         st1h.  */
+                                                      return 1888;
+                                                    }
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 31) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0000xxxxx110xxxxxxxxxxxxx
-                                                         ldnt1b.  */
-                                                      return 1697;
+                                                         011001x0011xxxxx010xxxxxxxxxxxxx
+                                                         bfdot.  */
+                                                      return 2422;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0100xxxxx110xxxxxxxxxxxxx
-                                                         ldnt1h.  */
-                                                      return 1701;
+                                                         111001x0011xxxxx010xxxxxxxxxxxxx
+                                                         st1b.  */
+                                                      return 1872;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 31) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         101001x0010xxxxx110xxxxxxxxxxxxx
-                                                         ld3b.  */
-                                                      return 1589;
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0111xxxxx010xx0xxxxxxxxxx
+                                                             bfmlalb.  */
+                                                          return 2429;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0111xxxxx010xx1xxxxxxxxxx
+                                                             bfmlalt.  */
+                                                          return 2428;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0110xxxxx110xxxxxxxxxxxxx
-                                                         ld3h.  */
-                                                      return 1593;
+                                                         111001x0111xxxxx010xxxxxxxxxxxxx
+                                                         st1h.  */
+                                                      return 1893;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -6621,80 +9247,124 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
-                                      if (((word >> 31) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             011001x0xx0xxxxx1x0xxxxxxxxxxxxx
-                                             fcadd.  */
-                                          return 1366;
-                                        }
-                                      else
+                                      if (((word >> 22) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 10) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     111001x0000xxxxx1x0xxxxxxxxxxxxx
-                                                     st1b.  */
-                                                  return 1845;
+                                                     011001x0x01xxxxx1x0xx0xxxxxxxxxx
+                                                     fmlalb.  */
+                                                  return 2082;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     111001x0100xxxxx1x0xxxxxxxxxxxxx
-                                                     st1h.  */
-                                                  return 1864;
+                                                     011001x0x01xxxxx1x0xx1xxxxxxxxxx
+                                                     fmlalt.  */
+                                                  return 2084;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 111001x0x01xxxxx1x0xxxxxxxxxxxxx
+                                                 st1h.  */
+                                              return 1889;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x11001x0011xxxxx1x0xxxxxxxxxxxxx
+                                                 bfdot.  */
+                                              return 2421;
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 31) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     111001x0010xxxxx1x0xxxxxxxxxxxxx
-                                                     st1b.  */
-                                                  return 1849;
+                                                  if (((word >> 10) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         011001x0111xxxxx1x0xx0xxxxxxxxxx
+                                                         bfmlalb.  */
+                                                      return 2427;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         011001x0111xxxxx1x0xx1xxxxxxxxxx
+                                                         bfmlalt.  */
+                                                      return 2426;
+                                                    }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     111001x0110xxxxx1x0xxxxxxxxxxxxx
+                                                     111001x0111xxxxx1x0xxxxxxxxxxxxx
                                                      st1h.  */
                                                      st1h.  */
-                                                  return 1870;
+                                                  return 1894;
                                                 }
                                             }
                                         }
                                     }
                                 }
                                                 }
                                             }
                                         }
                                     }
                                 }
-                              else
+                            }
+                          else
+                            {
+                              if (((word >> 30) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 14) & 0x1) == 0)
+                                  if (((word >> 31) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      if (((word >> 4) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 31) & 0x1) == 0)
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             001001x0xx1xxxxxxx1xxxxxxxx0xxxx
+                                             cmplo.  */
+                                          return 1338;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             001001x0xx1xxxxxxx1xxxxxxxx1xxxx
+                                             cmpls.  */
+                                          return 1340;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 14) & 0x1) == 0)
+                                        {
+                                          if (((word >> 15) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 4) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     001001x0xx0xxxxx101xxxxxxxx0xxxx
-                                                     cmpeq.  */
-                                                  return 1299;
+                                                     101001x00x1xxxxx001xxxxxxxxxxxxx
+                                                     ld1rob.  */
+                                                  return 2405;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     001001x0xx0xxxxx101xxxxxxxx1xxxx
-                                                     cmpne.  */
-                                                  return 1322;
+                                                     101001x01x1xxxxx001xxxxxxxxxxxxx
+                                                     ld1roh.  */
+                                                  return 2406;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -6707,17 +9377,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             101001x00000xxxx101xxxxxxxxxxxxx
+                                                             101001x00010xxxx101xxxxxxxxxxxxx
                                                              ld1b.  */
                                                              ld1b.  */
-                                                          return 1489;
+                                                          return 1512;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             101001x01000xxxx101xxxxxxxxxxxxx
-                                                             ld1sw.  */
-                                                          return 1567;
+                                                             101001x01010xxxx101xxxxxxxxxxxxx
+                                                             ld1h.  */
+                                                          return 1533;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -6726,60 +9396,181 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             101001x00100xxxx101xxxxxxxxxxxxx
+                                                             101001x00110xxxx101xxxxxxxxxxxxx
                                                              ld1b.  */
                                                              ld1b.  */
-                                                          return 1491;
+                                                          return 1514;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             101001x01100xxxx101xxxxxxxxxxxxx
+                                                             101001x01110xxxx101xxxxxxxxxxxxx
                                                              ld1h.  */
                                                              ld1h.  */
-                                                          return 1512;
+                                                          return 1535;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x00011xxxx101xxxxxxxxxxxxx
+                                                             ldnf1b.  */
+                                                          return 1704;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x01011xxxx101xxxxxxxxxxxxx
+                                                             ldnf1h.  */
+                                                          return 1708;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x00111xxxx101xxxxxxxxxxxxx
+                                                             ldnf1b.  */
+                                                          return 1706;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x01111xxxx101xxxxxxxxxxxxx
+                                                             ldnf1h.  */
+                                                          return 1710;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 15) & 0x1) == 0)
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0001xxxxx011xxxxxxxxxxxxx
+                                                         ldff1b.  */
+                                                      return 1630;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0101xxxxx011xxxxxxxxxxxxx
+                                                         ldff1h.  */
+                                                      return 1649;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0011xxxxx011xxxxxxxxxxxxx
+                                                         ldff1b.  */
+                                                      return 1634;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0111xxxxx011xxxxxxxxxxxxx
+                                                         ldff1h.  */
+                                                      return 1653;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0001xxxxx111xxxxxxxxxxxxx
+                                                         ld2b.  */
+                                                      return 1604;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0101xxxxx111xxxxxxxxxxxxx
+                                                         ld2h.  */
+                                                      return 1608;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0011xxxxx111xxxxxxxxxxxxx
+                                                         ld4b.  */
+                                                      return 1620;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0111xxxxx111xxxxxxxxxxxxx
+                                                         ld4h.  */
+                                                      return 1624;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 14) & 0x1) == 0)
+                                    {
+                                      if (((word >> 15) & 0x1) == 0)
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x11001x00x1xxxxx001xxxxxxxxxxxxx
+                                                 fmul.  */
+                                              return 1453;
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0101xxxxx001xxxxxxxxxxxxx
+                                                     fmul.  */
+                                                  return 1454;
+                                                }
                                               else
                                                 {
                                               else
                                                 {
-                                                  if (((word >> 22) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 23) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             101001x00001xxxx101xxxxxxxxxxxxx
-                                                             ldnf1b.  */
-                                                          return 1681;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             101001x01001xxxx101xxxxxxxxxxxxx
-                                                             ldnf1sw.  */
-                                                          return 1694;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 23) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             101001x00101xxxx101xxxxxxxxxxxxx
-                                                             ldnf1b.  */
-                                                          return 1683;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             101001x01101xxxx101xxxxxxxxxxxxx
-                                                             ldnf1h.  */
-                                                          return 1687;
-                                                        }
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0111xxxxx001xxxxxxxxxxxxx
+                                                     fmul.  */
+                                                  return 1455;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -6787,21 +9578,32 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           if (((word >> 22) & 0x1) == 0)
                                             {
                                         {
                                           if (((word >> 22) & 0x1) == 0)
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 31) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x11001x0000xxxxx101xxxxxxxxxxxxx
-                                                     st1b.  */
-                                                  return 1846;
+                                                  if (((word >> 10) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         011001x0x01xxxxx101xx0xxxxxxxxxx
+                                                         fmlslb.  */
+                                                      return 2086;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         011001x0x01xxxxx101xx1xxxxxxxxxx
+                                                         fmlslt.  */
+                                                      return 2088;
+                                                    }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x11001x0100xxxxx101xxxxxxxxxxxxx
+                                                     111001x0x01xxxxx101xxxxxxxxxxxxx
                                                      st1h.  */
                                                      st1h.  */
-                                                  return 1865;
+                                                  return 1890;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -6810,667 +9612,1047 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x11001x0010xxxxx101xxxxxxxxxxxxx
+                                                     x11001x0011xxxxx101xxxxxxxxxxxxx
                                                      st1b.  */
                                                      st1b.  */
-                                                  return 1853;
+                                                  return 1877;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x11001x0110xxxxx101xxxxxxxxxxxxx
+                                                     x11001x0111xxxxx101xxxxxxxxxxxxx
                                                      st1h.  */
                                                      st1h.  */
-                                                  return 1874;
+                                                  return 1898;
                                                 }
                                             }
                                         }
                                     }
                                   else
                                     {
                                                 }
                                             }
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      if (((word >> 15) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 31) & 0x1) == 0)
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 4) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     001001x0xx0xxxxx111xxxxxxxx0xxxx
-                                                     cmplo.  */
-                                                  return 1315;
+                                                     x11001x0001xxxxx011xxxxxxxxxxxxx
+                                                     st2b.  */
+                                                  return 1912;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     001001x0xx0xxxxx111xxxxxxxx1xxxx
-                                                     cmpls.  */
-                                                  return 1317;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 22) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 31) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         101001x0000xxxxx111xxxxxxxxxxxxx
-                                                         ldnt1b.  */
-                                                      return 1698;
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0101xxxxx011xx0xxxxxxxxxx
+                                                             fmlslb.  */
+                                                          return 2085;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x0101xxxxx011xx1xxxxxxxxxx
+                                                             fmlslt.  */
+                                                          return 2087;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0100xxxxx111xxxxxxxxxxxxx
-                                                         ldnt1h.  */
-                                                      return 1702;
+                                                         111001x0101xxxxx011xxxxxxxxxxxxx
+                                                         st2h.  */
+                                                      return 1916;
                                                     }
                                                 }
                                                     }
                                                 }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0011xxxxx011xxxxxxxxxxxxx
+                                                     st4b.  */
+                                                  return 1928;
+                                                }
                                               else
                                                 {
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0111xxxxx011xxxxxxxxxxxxx
+                                                     st4h.  */
+                                                  return 1932;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 20) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0010xxxxx111xxxxxxxxxxxxx
-                                                         ld3b.  */
-                                                      return 1590;
+                                                         x11001x00010xxxx111xxxxxxxxxxxxx
+                                                         st1b.  */
+                                                      return 1874;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0110xxxxx111xxxxxxxxxxxxx
-                                                         ld3h.  */
-                                                      return 1594;
+                                                         x11001x00011xxxx111xxxxxxxxxxxxx
+                                                         st2b.  */
+                                                      return 1913;
                                                     }
                                                 }
                                                     }
                                                 }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 20) & 0x1) == 0)
-                                            {
-                                              if (((word >> 22) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x11001x0x000xxxx111xxxxxxxxxxxxx
-                                                     st1b.  */
-                                                  return 1851;
-                                                }
                                               else
                                                 {
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 31) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         x11001x00100xxxx111xxxxxxxxxxxxx
-                                                         st1b.  */
-                                                      return 1854;
+                                                         011001x0101xxxxx111xxxxxxxxxxxxx
+                                                         fmmla.  */
+                                                      return 2399;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x01100xxxx111xxxxxxxxxxxxx
-                                                         st1h.  */
-                                                      return 1875;
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x01010xxxx111xxxxxxxxxxxxx
+                                                             st1h.  */
+                                                          return 1895;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x01011xxxx111xxxxxxxxxxxxx
+                                                             st2h.  */
+                                                          return 1917;
+                                                        }
                                                     }
                                                 }
                                             }
                                           else
                                             {
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 31) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         x11001x00001xxxx111xxxxxxxxxxxxx
-                                                         stnt1b.  */
-                                                      return 1915;
+                                                         011001x0011xxxxx111xxxxxxxxxxxxx
+                                                         bfmmla.  */
+                                                      return 2423;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x01001xxxx111xxxxxxxxxxxxx
-                                                         stnt1h.  */
-                                                      return 1919;
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x00110xxxx111xxxxxxxxxxxxx
+                                                             st1b.  */
+                                                          return 1878;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x00111xxxx111xxxxxxxxxxxxx
+                                                             st4b.  */
+                                                          return 1929;
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 31) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         x11001x00101xxxx111xxxxxxxxxxxxx
-                                                         st3b.  */
-                                                      return 1899;
+                                                         011001x0111xxxxx111xxxxxxxxxxxxx
+                                                         fmmla.  */
+                                                      return 2400;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x01101xxxx111xxxxxxxxxxxxx
-                                                         st3h.  */
-                                                      return 1903;
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x01110xxxx111xxxxxxxxxxxxx
+                                                             st1h.  */
+                                                          return 1899;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x01111xxxx111xxxxxxxxxxxxx
+                                                             st4h.  */
+                                                          return 1933;
+                                                        }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                                     }
                                                 }
                                             }
                                         }
                                     }
-                                }
-                            }
-                        }
-                      else
-                        {
-                          if (((word >> 13) & 0x1) == 0)
-                            {
-                              if (((word >> 30) & 0x1) == 0)
-                                {
-                                  if (((word >> 31) & 0x1) == 0)
+                                }
+                            }
+                        }
+                    }
+                }
+              else
+                {
+                  if (((word >> 29) & 0x1) == 0)
+                    {
+                      if (((word >> 30) & 0x1) == 0)
+                        {
+                          if (((word >> 31) & 0x1) == 0)
+                            {
+                              if (((word >> 21) & 0x1) == 0)
+                                {
+                                  if (((word >> 20) & 0x1) == 0)
+                                    {
+                                      if (((word >> 22) & 0x1) == 0)
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 000001x10000xxxxxxxxxxxxxxxxxxxx
+                                                 orr.  */
+                                              return 1758;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 000001x11000xxxxxxxxxxxxxxxxxxxx
+                                                 and.  */
+                                              return 1286;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 000001x10100xxxxxxxxxxxxxxxxxxxx
+                                                 eor.  */
+                                              return 1373;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 000001x11100xxxxxxxxxxxxxxxxxxxx
+                                                 dupm.  */
+                                              return 1371;
+                                            }
+                                        }
+                                    }
+                                  else
                                     {
                                     {
-                                      if (((word >> 4) & 0x1) == 0)
+                                      if (((word >> 15) & 0x1) == 0)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             001001x0xx1xxxxxxx0xxxxxxxx0xxxx
-                                             cmphs.  */
-                                          return 1312;
+                                             000001x1xx01xxxx0xxxxxxxxxxxxxxx
+                                             cpy.  */
+                                          return 1356;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             001001x0xx1xxxxxxx0xxxxxxxx1xxxx
-                                             cmphi.  */
-                                          return 1309;
+                                             000001x1xx01xxxx1xxxxxxxxxxxxxxx
+                                             fcpy.  */
+                                          return 1403;
                                         }
                                     }
                                         }
                                     }
-                                  else
+                                }
+                              else
+                                {
+                                  if (((word >> 14) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 15) & 0x1) == 0)
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x0001xxxxx0x0xxxxxxxxxxxxx
-                                                     ld1b.  */
-                                                  return 1483;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x0101xxxxx0x0xxxxxxxxxxxxx
-                                                     ld1h.  */
-                                                  return 1503;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x0011xxxxx0x0xxxxxxxxxxxxx
-                                                     ld1b.  */
-                                                  return 1485;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x0111xxxxx0x0xxxxxxxxxxxxx
-                                                     ld1h.  */
-                                                  return 1505;
-                                                }
-                                            }
-                                        }
-                                      else
+                                      if (((word >> 13) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 15) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x0001xxxxx1x0xxxxxxxxxxxxx
-                                                     ld2b.  */
-                                                  return 1581;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1001xxxxx000xxxxxxxxxxxxx
+                                                         ext.  */
+                                                      return 1378;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 11) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1101xxxxx000x00xxxxxxxxxx
+                                                                 zip1.  */
+                                                              return 2409;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 12) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x1101xxxxx000010xxxxxxxxxx
+                                                                     uzp1.  */
+                                                                  return 2411;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x1101xxxxx000110xxxxxxxxxx
+                                                                     trn1.  */
+                                                                  return 2413;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 11) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1101xxxxx000x01xxxxxxxxxx
+                                                                 zip2.  */
+                                                              return 2410;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 12) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x1101xxxxx000011xxxxxxxxxx
+                                                                     uzp2.  */
+                                                                  return 2412;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x1101xxxxx000111xxxxxxxxxx
+                                                                     trn2.  */
+                                                                  return 2414;
+                                                                }
+                                                            }
+                                                        }
+                                                    }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     101001x0101xxxxx1x0xxxxxxxxxxxxx
-                                                     ld2h.  */
-                                                  return 1585;
+                                                     000001x1x11xxxxx000xxxxxxxxxxxxx
+                                                     ext.  */
+                                                  return 2068;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 16) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x0011xxxxx1x0xxxxxxxxxxxxx
-                                                     ld4b.  */
-                                                  return 1597;
+                                                  if (((word >> 17) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x0000100xxxxxxxxxxxxx
+                                                                 cpy.  */
+                                                              return 1354;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x1000100xxxxxxxxxxxxx
+                                                                 clasta.  */
+                                                              return 1312;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x0100100xxxxxxxxxxxxx
+                                                                 revb.  */
+                                                              return 1806;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x1100100xxxxxxxxxxxxx
+                                                                 splice.  */
+                                                              return 1833;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x0010100xxxxxxxxxxxxx
+                                                                 lasta.  */
+                                                              return 1500;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x1010100xxxxxxxxxxxxx
+                                                                 clasta.  */
+                                                              return 1313;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xx110100xxxxxxxxxxxxx
+                                                             revw.  */
+                                                          return 1808;
+                                                        }
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     101001x0111xxxxx1x0xxxxxxxxxxxxx
-                                                     ld4h.  */
-                                                  return 1601;
+                                                  if (((word >> 17) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x0001100xxxxxxxxxxxxx
+                                                                 compact.  */
+                                                              return 1353;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x1001100xxxxxxxxxxxxx
+                                                                 clastb.  */
+                                                              return 1315;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x0101100xxxxxxxxxxxxx
+                                                                 revh.  */
+                                                              return 1807;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x1101100xxxxxxxxxxxxx
+                                                                 splice.  */
+                                                              return 2163;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x0011100xxxxxxxxxxxxx
+                                                                 lastb.  */
+                                                              return 1502;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x1011100xxxxxxxxxxxxx
+                                                                 clastb.  */
+                                                              return 1316;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xx111100xxxxxxxxxxxxx
+                                                             rbit.  */
+                                                          return 1799;
+                                                        }
+                                                    }
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 15) & 0x1) == 0)
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      else
                                         {
                                         {
-                                          if (((word >> 12) & 0x1) == 0)
+                                          if (((word >> 15) & 0x1) == 0)
                                             {
                                               if (((word >> 10) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 10) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x00x1xxxxx0000x0xxxxxxxxxx
-                                                         fmla.  */
-                                                      return 1420;
-                                                    }
-                                                  else
+                                                  if (((word >> 11) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 22) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             x11001x0101xxxxx0000x0xxxxxxxxxx
-                                                             fmla.  */
-                                                          return 1421;
+                                                             000001x1xx1xxxxx001000xxxxxxxxxx
+                                                             dup.  */
+                                                          return 1369;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             x11001x0111xxxxx0000x0xxxxxxxxxx
-                                                             fmla.  */
-                                                          return 1422;
+                                                             000001x1xx1xxxxx001100xxxxxxxxxx
+                                                             tbl.  */
+                                                          return 1956;
                                                         }
                                                     }
                                                         }
                                                     }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x00x1xxxxx0000x1xxxxxxxxxx
-                                                         fmls.  */
-                                                      return 1424;
-                                                    }
                                                   else
                                                     {
                                                   else
                                                     {
-                                                      if (((word >> 22) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             x11001x0101xxxxx0000x1xxxxxxxxxx
-                                                             fmls.  */
-                                                          return 1425;
+                                                             000001x1xx1xxxxx001010xxxxxxxxxx
+                                                             tbl.  */
+                                                          return 2252;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             x11001x0111xxxxx0000x1xxxxxxxxxx
-                                                             fmls.  */
-                                                          return 1426;
+                                                          if (((word >> 16) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 17) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 18) & 0x1) == 0)
+                                                                    {
+                                                                      if (((word >> 19) & 0x1) == 0)
+                                                                        {
+                                                                          if (((word >> 20) & 0x1) == 0)
+                                                                            {
+                                                                              /* 33222222222211111111110000000000
+                                                                                 10987654321098765432109876543210
+                                                                                 000001x1xx100000001110xxxxxxxxxx
+                                                                                 dup.  */
+                                                                              return 1368;
+                                                                            }
+                                                                          else
+                                                                            {
+                                                                              /* 33222222222211111111110000000000
+                                                                                 10987654321098765432109876543210
+                                                                                 000001x1xx110000001110xxxxxxxxxx
+                                                                                 sunpklo.  */
+                                                                              return 1952;
+                                                                            }
+                                                                        }
+                                                                      else
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             000001x1xx1x1000001110xxxxxxxxxx
+                                                                             rev.  */
+                                                                          return 1805;
+                                                                        }
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      if (((word >> 20) & 0x1) == 0)
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             000001x1xx10x100001110xxxxxxxxxx
+                                                                             insr.  */
+                                                                          return 1497;
+                                                                        }
+                                                                      else
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             000001x1xx11x100001110xxxxxxxxxx
+                                                                             insr.  */
+                                                                          return 1498;
+                                                                        }
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x1xx1xxx10001110xxxxxxxxxx
+                                                                     uunpklo.  */
+                                                                  return 2015;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 17) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x1xx1xxx01001110xxxxxxxxxx
+                                                                     sunpkhi.  */
+                                                                  return 1951;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x1xx1xxx11001110xxxxxxxxxx
+                                                                     uunpkhi.  */
+                                                                  return 2014;
+                                                                }
+                                                            }
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 22) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x11001x0x01xxxxx0001xxxxxxxxxxxx
-                                                     fcmla.  */
-                                                  return 1368;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x11001x0x11xxxxx0001xxxxxxxxxxxx
-                                                     fcmla.  */
-                                                  return 1369;
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x11001x0001xxxxx010xxxxxxxxxxxxx
-                                                     st1b.  */
-                                                  return 1847;
-                                                }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x11001x0101xxxxx010xxxxxxxxxxxxx
-                                                     st1h.  */
-                                                  return 1866;
+                                                     000001x1xx1xxxxx001xx1xxxxxxxxxx
+                                                     tbx.  */
+                                                  return 2253;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 16) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x11001x0011xxxxx010xxxxxxxxxxxxx
-                                                     st1b.  */
-                                                  return 1850;
+                                                  if (((word >> 19) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx100xx0101xxxxxxxxxxxxx
+                                                             lasta.  */
+                                                          return 1499;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx110xx0101xxxxxxxxxxxxx
+                                                             clasta.  */
+                                                          return 1314;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1xx1x1xx0101xxxxxxxxxxxxx
+                                                         cpy.  */
+                                                      return 1355;
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x11001x0111xxxxx010xxxxxxxxxxxxx
-                                                     st1h.  */
-                                                  return 1871;
+                                                  if (((word >> 20) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1xx10xxx1101xxxxxxxxxxxxx
+                                                         lastb.  */
+                                                      return 1501;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1xx11xxx1101xxxxxxxxxxxxx
+                                                         clastb.  */
+                                                      return 1317;
+                                                    }
                                                 }
                                             }
                                         }
                                     }
                                   else
                                     {
                                                 }
                                             }
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 22) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             x11001x0x01xxxxx1x0xxxxxxxxxxxxx
-                                             st1h.  */
-                                          return 1867;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             x11001x0x11xxxxx1x0xxxxxxxxxxxxx
-                                             st1h.  */
-                                          return 1872;
-                                        }
-                                    }
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 30) & 0x1) == 0)
-                                {
-                                  if (((word >> 31) & 0x1) == 0)
-                                    {
-                                      if (((word >> 4) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             001001x0xx1xxxxxxx1xxxxxxxx0xxxx
-                                             cmplo.  */
-                                          return 1316;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             001001x0xx1xxxxxxx1xxxxxxxx1xxxx
-                                             cmpls.  */
-                                          return 1318;
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      if (((word >> 15) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 20) & 0x1) == 0)
+                                          if (((word >> 10) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 11) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 12) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         101001x00010xxxxx01xxxxxxxxxxxxx
-                                                         ld1b.  */
-                                                      return 1490;
+                                                      if (((word >> 13) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx10xxxx010000xxxxxxxxxx
+                                                                 zip1.  */
+                                                              return 2032;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 16) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 18) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x1xx11x0x0010000xxxxxxxxxx
+                                                                         punpklo.  */
+                                                                      return 1798;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x1xx11x1x0010000xxxxxxxxxx
+                                                                         rev.  */
+                                                                      return 1804;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x1xx11xxx1010000xxxxxxxxxx
+                                                                     punpkhi.  */
+                                                                  return 1797;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx011000xxxxxxxxxx
+                                                             zip1.  */
+                                                          return 2033;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         101001x01010xxxxx01xxxxxxxxxxxxx
-                                                         ld1h.  */
-                                                      return 1511;
+                                                      if (((word >> 13) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx010100xxxxxxxxxx
+                                                             trn1.  */
+                                                          return 1957;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx011100xxxxxxxxxx
+                                                             trn1.  */
+                                                          return 1958;
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x00110xxxxx01xxxxxxxxxxxxx
-                                                         ld1b.  */
-                                                      return 1492;
+                                                         000001x1xx1xxxxx010x10xxxxxxxxxx
+                                                         uzp1.  */
+                                                      return 2019;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x01110xxxxx01xxxxxxxxxxxxx
-                                                         ld1h.  */
-                                                      return 1513;
+                                                         000001x1xx1xxxxx011x10xxxxxxxxxx
+                                                         uzp1.  */
+                                                      return 2020;
                                                     }
                                                 }
                                             }
                                           else
                                             {
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 11) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 12) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         101001x00011xxxxx01xxxxxxxxxxxxx
-                                                         ldnf1b.  */
-                                                      return 1682;
+                                                      if (((word >> 13) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx010001xxxxxxxxxx
+                                                             zip2.  */
+                                                          return 2034;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx011001xxxxxxxxxx
+                                                             zip2.  */
+                                                          return 2035;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         101001x01011xxxxx01xxxxxxxxxxxxx
-                                                         ldnf1h.  */
-                                                      return 1686;
+                                                      if (((word >> 13) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx010101xxxxxxxxxx
+                                                             trn2.  */
+                                                          return 1959;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx011101xxxxxxxxxx
+                                                             trn2.  */
+                                                          return 1960;
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x00111xxxxx01xxxxxxxxxxxxx
-                                                         ldnf1b.  */
-                                                      return 1684;
+                                                         000001x1xx1xxxxx010x11xxxxxxxxxx
+                                                         uzp2.  */
+                                                      return 2021;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x01111xxxxx01xxxxxxxxxxxxx
-                                                         ldnf1h.  */
-                                                      return 1688;
+                                                         000001x1xx1xxxxx011x11xxxxxxxxxx
+                                                         uzp2.  */
+                                                      return 2022;
                                                     }
                                                 }
                                             }
                                         }
                                       else
                                         {
                                                     }
                                                 }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             000001x1xx1xxxxx11xxxxxxxxxxxxxx
+                                             sel.  */
+                                          return 1823;
+                                        }
+                                    }
+                                }
+                            }
+                          else
+                            {
+                              if (((word >> 13) & 0x1) == 0)
+                                {
+                                  if (((word >> 14) & 0x1) == 0)
+                                    {
+                                      if (((word >> 15) & 0x1) == 0)
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 100001x1x0xxxxxx000xxxxxxxxxxxxx
+                                                 ldr.  */
+                                              return 1727;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 100001x1x1xxxxxx000xxxxxxxxxxxxx
+                                                 prfb.  */
+                                              return 1771;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 100001x10xxxxxxx100xxxxxxxxxxxxx
+                                                 ld1rsh.  */
+                                              return 1556;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 100001x11xxxxxxx100xxxxxxxxxxxxx
+                                                 ld1rsb.  */
+                                              return 1553;
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 15) & 0x1) == 0)
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              if (((word >> 21) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         101001x0001xxxxx011xxxxxxxxxxxxx
-                                                         ldff1b.  */
-                                                      return 1608;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         101001x0101xxxxx011xxxxxxxxxxxxx
-                                                         ldff1h.  */
-                                                      return 1627;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x10x0xxxxx010xxxxxxxxxxxxx
+                                                     ld1w.  */
+                                                  return 1591;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         101001x0011xxxxx011xxxxxxxxxxxxx
-                                                         ldff1b.  */
-                                                      return 1612;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         101001x0111xxxxx011xxxxxxxxxxxxx
-                                                         ldff1h.  */
-                                                      return 1631;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x10x1xxxxx010xxxxxxxxxxxxx
+                                                     ld1w.  */
+                                                  return 1592;
                                                 }
                                             }
                                           else
                                             {
                                               if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 }
                                             }
                                           else
                                             {
                                               if (((word >> 22) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         101001x0001xxxxx111xxxxxxxxxxxxx
-                                                         ld2b.  */
-                                                      return 1582;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         101001x0101xxxxx111xxxxxxxxxxxxx
-                                                         ld2h.  */
-                                                      return 1586;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x110xxxxxx010xxxxxxxxxxxxx
+                                                     ldr.  */
+                                                  return 1728;
                                                 }
                                               else
                                                 }
                                               else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x111xxxxxx010xxxxxxxxxxxxx
+                                                     prfw.  */
+                                                  return 1792;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 21) & 0x1) == 0)
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0011xxxxx111xxxxxxxxxxxxx
-                                                         ld4b.  */
-                                                      return 1598;
+                                                         100001x1000xxxxx110xxxxxxxxxxxxx
+                                                         prfw.  */
+                                                      return 1788;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         101001x0111xxxxx111xxxxxxxxxxxxx
-                                                         ld4h.  */
-                                                      return 1602;
+                                                         100001x1100xxxxx110xxxxxxxxxxxxx
+                                                         prfd.  */
+                                                      return 1774;
                                                     }
                                                 }
                                                     }
                                                 }
-                                            }
-                                        }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 14) & 0x1) == 0)
-                                    {
-                                      if (((word >> 15) & 0x1) == 0)
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x11001x00x1xxxxx001xxxxxxxxxxxxx
-                                                 fmul.  */
-                                              return 1431;
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x1x01xxxxx110xxxxxxxxxxxxx
+                                                     ld1w.  */
+                                                  return 1599;
+                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x11001x0101xxxxx001xxxxxxxxxxxxx
-                                                     fmul.  */
-                                                  return 1432;
+                                                     100001x101xxxxxx110xxxxxxxxxxxxx
+                                                     ld1rw.  */
+                                                  return 1559;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x11001x0111xxxxx001xxxxxxxxxxxxx
-                                                     fmul.  */
-                                                  return 1433;
+                                                     100001x111xxxxxx110xxxxxxxxxxxxx
+                                                     ld1rsb.  */
+                                                  return 1555;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 14) & 0x1) == 0)
+                                    {
+                                      if (((word >> 15) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             100001x1xxxxxxxx001xxxxxxxxxxxxx
+                                             prfh.  */
+                                          return 1785;
+                                        }
                                       else
                                         {
                                           if (((word >> 22) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                       else
                                         {
                                           if (((word >> 22) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 x11001x0x01xxxxx101xxxxxxxxxxxxx
-                                                 st1h.  */
-                                              return 1868;
+                                                 100001x1x0xxxxxx101xxxxxxxxxxxxx
+                                                 ldnt1w.  */
+                                              return 2099;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -7478,17 +10660,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x11001x0011xxxxx101xxxxxxxxxxxxx
-                                                     st1b.  */
-                                                  return 1855;
+                                                     100001x101xxxxxx101xxxxxxxxxxxxx
+                                                     ld1rsh.  */
+                                                  return 1557;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x11001x0111xxxxx101xxxxxxxxxxxxx
-                                                     st1h.  */
-                                                  return 1876;
+                                                     100001x111xxxxxx101xxxxxxxxxxxxx
+                                                     ld1rsb.  */
+                                                  return 1554;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -7497,127 +10679,83 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       if (((word >> 15) & 0x1) == 0)
                                         {
                                     {
                                       if (((word >> 15) & 0x1) == 0)
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 23) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 21) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x11001x0001xxxxx011xxxxxxxxxxxxx
-                                                     st2b.  */
-                                                  return 1890;
+                                                     100001x10x0xxxxx011xxxxxxxxxxxxx
+                                                     ldff1w.  */
+                                                  return 1691;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x11001x0101xxxxx011xxxxxxxxxxxxx
-                                                     st2h.  */
-                                                  return 1894;
+                                                     100001x10x1xxxxx011xxxxxxxxxxxxx
+                                                     ldff1w.  */
+                                                  return 1692;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x11001x0011xxxxx011xxxxxxxxxxxxx
-                                                     st4b.  */
-                                                  return 1906;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x11001x0111xxxxx011xxxxxxxxxxxxx
-                                                     st4h.  */
-                                                  return 1910;
-                                                }
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 100001x11xxxxxxx011xxxxxxxxxxxxx
+                                                 prfd.  */
+                                              return 1778;
                                             }
                                         }
                                       else
                                         {
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 20) & 0x1) == 0)
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 21) & 0x1) == 0)
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         x11001x00010xxxx111xxxxxxxxxxxxx
-                                                         st1b.  */
-                                                      return 1852;
+                                                         100001x1000xxxxx111xxxxxxxxxxxxx
+                                                         prfw.  */
+                                                      return 1791;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         x11001x01010xxxx111xxxxxxxxxxxxx
-                                                         st1h.  */
-                                                      return 1873;
+                                                         100001x1100xxxxx111xxxxxxxxxxxxx
+                                                         prfd.  */
+                                                      return 1777;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x00110xxxx111xxxxxxxxxxxxx
-                                                         st1b.  */
-                                                      return 1856;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x01110xxxx111xxxxxxxxxxxxx
-                                                         st1h.  */
-                                                      return 1877;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x1x01xxxxx111xxxxxxxxxxxxx
+                                                     ldff1w.  */
+                                                  return 1701;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x00011xxxx111xxxxxxxxxxxxx
-                                                         st2b.  */
-                                                      return 1891;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x01011xxxx111xxxxxxxxxxxxx
-                                                         st2h.  */
-                                                      return 1895;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x101xxxxxx111xxxxxxxxxxxxx
+                                                     ld1rw.  */
+                                                  return 1560;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x00111xxxx111xxxxxxxxxxxxx
-                                                         st4b.  */
-                                                      return 1907;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x01111xxxx111xxxxxxxxxxxxx
-                                                         st4h.  */
-                                                      return 1911;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x111xxxxxx111xxxxxxxxxxxxx
+                                                     ld1rd.  */
+                                                  return 1541;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -7625,886 +10763,1034 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 }
                             }
                         }
                                 }
                             }
                         }
-                    }
-                }
-              else
-                {
-                  if (((word >> 29) & 0x1) == 0)
-                    {
-                      if (((word >> 30) & 0x1) == 0)
+                      else
                         {
                         {
-                          if (((word >> 31) & 0x1) == 0)
+                          if (((word >> 13) & 0x1) == 0)
                             {
                             {
-                              if (((word >> 21) & 0x1) == 0)
+                              if (((word >> 14) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 20) & 0x1) == 0)
+                                  if (((word >> 15) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 22) & 0x1) == 0)
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 000001x10000xxxxxxxxxxxxxxxxxxxx
-                                                 orr.  */
-                                              return 1736;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 000001x11000xxxxxxxxxxxxxxxxxxxx
-                                                 and.  */
-                                              return 1264;
-                                            }
-                                        }
-                                      else
+                                      if (((word >> 21) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 23) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 000001x10100xxxxxxxxxxxxxxxxxxxx
-                                                 eor.  */
-                                              return 1351;
+                                              if (((word >> 10) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx000000xxxxxxxxxx
+                                                             saddlb.  */
+                                                          return 2129;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx000100xxxxxxxxxx
+                                                             ssublb.  */
+                                                          return 2236;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx000010xxxxxxxxxx
+                                                             uaddlb.  */
+                                                          return 2260;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx000110xxxxxxxxxx
+                                                             usublb.  */
+                                                          return 2313;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx000001xxxxxxxxxx
+                                                             saddlt.  */
+                                                          return 2131;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx000101xxxxxxxxxx
+                                                             ssublt.  */
+                                                          return 2238;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx000011xxxxxxxxxx
+                                                             uaddlt.  */
+                                                          return 2261;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx000111xxxxxxxxxx
+                                                             usublt.  */
+                                                          return 2314;
+                                                        }
+                                                    }
+                                                }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 000001x11100xxxxxxxxxxxxxxxxxxxx
-                                                 dupm.  */
-                                              return 1349;
+                                                 110001x1xx0xxxxx000xxxxxxxxxxxxx
+                                                 ld1sw.  */
+                                              return 1585;
                                             }
                                         }
                                             }
                                         }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 15) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             000001x1xx01xxxx0xxxxxxxxxxxxxxx
-                                             cpy.  */
-                                          return 1334;
-                                        }
                                       else
                                         {
                                       else
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             000001x1xx01xxxx1xxxxxxxxxxxxxxx
-                                             fcpy.  */
-                                          return 1381;
-                                        }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 14) & 0x1) == 0)
-                                    {
-                                      if (((word >> 13) & 0x1) == 0)
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 000001x1xx1xxxxx000xxxxxxxxxxxxx
-                                                 ext.  */
-                                              return 1356;
-                                            }
-                                          else
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 10) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 17) & 0x1) == 0)
+                                                  if (((word >> 11) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x1xx1x0000100xxxxxxxxxxxxx
-                                                                 cpy.  */
-                                                              return 1332;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x1xx1x1000100xxxxxxxxxxxxx
-                                                                 clasta.  */
-                                                              return 1290;
-                                                            }
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx000000xxxxxxxxxx
+                                                             sqshrunb.  */
+                                                          return 2219;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x1xx1x0100100xxxxxxxxxxxxx
-                                                                 revb.  */
-                                                              return 1784;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x1xx1x1100100xxxxxxxxxxxxx
-                                                                 splice.  */
-                                                              return 1811;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx000100xxxxxxxxxx
+                                                             shrnb.  */
+                                                          return 2137;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x1xx1x0010100xxxxxxxxxxxxx
-                                                                 lasta.  */
-                                                              return 1478;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x1xx1x1010100xxxxxxxxxxxxx
-                                                                 clasta.  */
-                                                              return 1291;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx000010xxxxxxxxxx
+                                                             sqrshrunb.  */
+                                                          return 2211;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x1xx1xx110100xxxxxxxxxxxxx
-                                                             revw.  */
-                                                          return 1786;
+                                                             010001x1xx1xxxxx000110xxxxxxxxxx
+                                                             rshrnb.  */
+                                                          return 2119;
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 17) & 0x1) == 0)
+                                                  if (((word >> 11) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x1xx1x0001100xxxxxxxxxxxxx
-                                                                 compact.  */
-                                                              return 1331;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x1xx1x1001100xxxxxxxxxxxxx
-                                                                 clastb.  */
-                                                              return 1293;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx000001xxxxxxxxxx
+                                                             sqshrunt.  */
+                                                          return 2220;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x1xx1xx101100xxxxxxxxxxxxx
-                                                             revh.  */
-                                                          return 1785;
+                                                             010001x1xx1xxxxx000101xxxxxxxxxx
+                                                             shrnt.  */
+                                                          return 2138;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x1xx1x0011100xxxxxxxxxxxxx
-                                                                 lastb.  */
-                                                              return 1480;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 000001x1xx1x1011100xxxxxxxxxxxxx
-                                                                 clastb.  */
-                                                              return 1294;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx000011xxxxxxxxxx
+                                                             sqrshrunt.  */
+                                                          return 2212;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x1xx1xx111100xxxxxxxxxxxxx
-                                                             rbit.  */
-                                                          return 1777;
+                                                             010001x1xx1xxxxx000111xxxxxxxxxx
+                                                             rshrnt.  */
+                                                          return 2120;
                                                         }
                                                     }
                                                 }
                                             }
                                                         }
                                                     }
                                                 }
                                             }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 110001x1xx1xxxxx000xxxxxxxxxxxxx
+                                                 ld1sw.  */
+                                              return 1586;
+                                            }
                                         }
                                         }
-                                      else
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 21) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 11) & 0x1) == 0)
+                                              if (((word >> 10) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 12) & 0x1) == 0)
+                                                  if (((word >> 11) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x1xx1xxxxx00100xxxxxxxxxxx
-                                                         dup.  */
-                                                      return 1347;
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx100000xxxxxxxxxx
+                                                             saddlbt.  */
+                                                          return 2130;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx100100xxxxxxxxxx
+                                                             eorbt.  */
+                                                          return 2066;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x1xx1xxxxx00110xxxxxxxxxxx
-                                                         tbl.  */
-                                                      return 1934;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 16) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 17) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx100010xxxxxxxxxx
+                                                             ssublbt.  */
+                                                          return 2237;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
+                                                              if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x1xx100000001x1xxxxxxxxxxx
-                                                                         dup.  */
-                                                                      return 1346;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x1xx110000001x1xxxxxxxxxxx
-                                                                         sunpklo.  */
-                                                                      return 1930;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x1000xxxxx100110xxxxxxxxxx
+                                                                     smmla.  */
+                                                                  return 2393;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     000001x1xx1x1000001x1xxxxxxxxxxx
-                                                                     rev.  */
-                                                                  return 1783;
+                                                                     010001x1100xxxxx100110xxxxxxxxxx
+                                                                     usmmla.  */
+                                                                  return 2395;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 20) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x1xx10x100001x1xxxxxxxxxxx
-                                                                     insr.  */
-                                                                  return 1475;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x1xx11x100001x1xxxxxxxxxxx
-                                                                     insr.  */
-                                                                  return 1476;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x1x10xxxxx100110xxxxxxxxxx
+                                                                 ummla.  */
+                                                              return 2394;
                                                             }
                                                         }
                                                             }
                                                         }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         010001x1xx0xxxxx100x01xxxxxxxxxx
+                                                         eortb.  */
+                                                      return 2067;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         010001x1xx0xxxxx100x11xxxxxxxxxx
+                                                         ssubltb.  */
+                                                      return 2239;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x1x00xxxxx100xxxxxxxxxxxxx
+                                                     ldnt1sw.  */
+                                                  return 2098;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x1x10xxxxx100xxxxxxxxxxxxx
+                                                     ld1sw.  */
+                                                  return 1587;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     010001x1xx1xxxxx100xxxxxxxx0xxxx
+                                                     match.  */
+                                                  return 2101;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     010001x1xx1xxxxx100xxxxxxxx1xxxx
+                                                     nmatch.  */
+                                                  return 2113;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x1x01xxxxx100xxxxxxxxxxxxx
+                                                     ld1sw.  */
+                                                  return 1590;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x1x11xxxxx100xxxxxxxxxxxxx
+                                                     ld1sw.  */
+                                                  return 1588;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 15) & 0x1) == 0)
+                                    {
+                                      if (((word >> 21) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 10) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx010000xxxxxxxxxx
+                                                             saddwb.  */
+                                                          return 2132;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx010100xxxxxxxxxx
+                                                             ssubwb.  */
+                                                          return 2240;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx010010xxxxxxxxxx
+                                                             uaddwb.  */
+                                                          return 2262;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx010110xxxxxxxxxx
+                                                             usubwb.  */
+                                                          return 2315;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx010001xxxxxxxxxx
+                                                             saddwt.  */
+                                                          return 2133;
+                                                        }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x1xx1xxx10001x1xxxxxxxxxxx
-                                                             uunpklo.  */
-                                                          return 1993;
+                                                             010001x1xx0xxxxx010101xxxxxxxxxx
+                                                             ssubwt.  */
+                                                          return 2241;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 17) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x1xx1xxx01001x1xxxxxxxxxxx
-                                                             sunpkhi.  */
-                                                          return 1929;
+                                                             010001x1xx0xxxxx010011xxxxxxxxxx
+                                                             uaddwt.  */
+                                                          return 2263;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x1xx1xxx11001x1xxxxxxxxxxx
-                                                             uunpkhi.  */
-                                                          return 1992;
+                                                             010001x1xx0xxxxx010111xxxxxxxxxx
+                                                             usubwt.  */
+                                                          return 2316;
                                                         }
                                                     }
                                                 }
                                             }
                                           else
                                             {
                                                         }
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x10x0xxxxx010xxxxxxxxxxxxx
+                                                     ld1w.  */
+                                                  return 1595;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x11x0xxxxx010xxxxxxxxxxxxx
+                                                     ld1d.  */
+                                                  return 1517;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              if (((word >> 31) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 10) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 11) & 0x1) == 0)
                                                         {
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x1xx100xx0101xxxxxxxxxxxxx
-                                                             lasta.  */
-                                                          return 1477;
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x10x1xxxxx010000xxxxxxxxxx
+                                                                 sqxtnb.  */
+                                                              return 2223;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x10x1xxxxx010100xxxxxxxxxx
+                                                                 sqxtunb.  */
+                                                              return 2225;
+                                                            }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x1xx110xx0101xxxxxxxxxxxxx
-                                                             clasta.  */
-                                                          return 1292;
+                                                             010001x10x1xxxxx010x10xxxxxxxxxx
+                                                             uqxtnb.  */
+                                                          return 2300;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x1xx1x1xx0101xxxxxxxxxxxxx
-                                                         cpy.  */
-                                                      return 1333;
+                                                      if (((word >> 11) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x10x1xxxxx010001xxxxxxxxxx
+                                                                 sqxtnt.  */
+                                                              return 2224;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x10x1xxxxx010101xxxxxxxxxx
+                                                                 sqxtunt.  */
+                                                              return 2226;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x10x1xxxxx010x11xxxxxxxxxx
+                                                             uqxtnt.  */
+                                                          return 2301;
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 20) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x1xx10xxx1101xxxxxxxxxxxxx
-                                                         lastb.  */
-                                                      return 1479;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x1xx11xxx1101xxxxxxxxxxxxx
-                                                         clastb.  */
-                                                      return 1295;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x10x1xxxxx010xxxxxxxxxxxxx
+                                                     ld1w.  */
+                                                  return 1596;
                                                 }
                                             }
                                                 }
                                             }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x10001x11x1xxxxx010xxxxxxxxxxxxx
+                                                 ld1d.  */
+                                              return 1518;
+                                            }
                                         }
                                     }
                                   else
                                     {
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 15) & 0x1) == 0)
+                                      if (((word >> 21) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 10) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                               if (((word >> 11) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 11) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 12) & 0x1) == 0)
+                                                  if (((word >> 10) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 13) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 20) & 0x1) == 0)
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx110000xxxxxxxxxx
+                                                             sabalb.  */
+                                                          return 2124;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 000001x1xx10xxxx010000xxxxxxxxxx
-                                                                 zip1.  */
-                                                              return 2010;
+                                                                 010001x10x0xxxxx110100xxxxxxxxxx
+                                                                 adclb.  */
+                                                              return 2049;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 16) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 18) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x1xx11x0x0010000xxxxxxxxxx
-                                                                         punpklo.  */
-                                                                      return 1776;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         000001x1xx11x1x0010000xxxxxxxxxx
-                                                                         rev.  */
-                                                                      return 1782;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     000001x1xx11xxx1010000xxxxxxxxxx
-                                                                     punpkhi.  */
-                                                                  return 1775;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x11x0xxxxx110100xxxxxxxxxx
+                                                                 sbclb.  */
+                                                              return 2134;
                                                             }
                                                         }
                                                             }
                                                         }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x1xx1xxxxx011000xxxxxxxxxx
-                                                             zip1.  */
-                                                          return 2011;
-                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 13) & 0x1) == 0)
+                                                      if (((word >> 12) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x1xx1xxxxx010100xxxxxxxxxx
-                                                             trn1.  */
-                                                          return 1935;
+                                                             010001x1xx0xxxxx110001xxxxxxxxxx
+                                                             sabalt.  */
+                                                          return 2125;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             000001x1xx1xxxxx011100xxxxxxxxxx
-                                                             trn1.  */
-                                                          return 1936;
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x10x0xxxxx110101xxxxxxxxxx
+                                                                 adclt.  */
+                                                              return 2050;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x11x0xxxxx110101xxxxxxxxxx
+                                                                 sbclt.  */
+                                                              return 2135;
+                                                            }
                                                         }
                                                     }
                                                 }
                                               else
                                                         }
                                                     }
                                                 }
                                               else
-                                                {
-                                                  if (((word >> 13) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x1xx1xxxxx010x10xxxxxxxxxx
-                                                         uzp1.  */
-                                                      return 1997;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         000001x1xx1xxxxx011x10xxxxxxxxxx
-                                                         uzp1.  */
-                                                      return 1998;
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 11) & 0x1) == 0)
                                                 {
                                                   if (((word >> 12) & 0x1) == 0)
                                                     {
                                                 {
                                                   if (((word >> 12) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 13) & 0x1) == 0)
+                                                      if (((word >> 10) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x1xx1xxxxx010001xxxxxxxxxx
-                                                             zip2.  */
-                                                          return 2012;
+                                                             010001x1xx0xxxxx110010xxxxxxxxxx
+                                                             uabalb.  */
+                                                          return 2255;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x1xx1xxxxx011001xxxxxxxxxx
-                                                             zip2.  */
-                                                          return 2013;
+                                                             010001x1xx0xxxxx110011xxxxxxxxxx
+                                                             uabalt.  */
+                                                          return 2256;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 13) & 0x1) == 0)
+                                                      if (((word >> 16) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x1xx1xxxxx010101xxxxxxxxxx
-                                                             trn2.  */
-                                                          return 1937;
+                                                             010001x1xx0xxxx011011xxxxxxxxxxx
+                                                             cadd.  */
+                                                          return 2058;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             000001x1xx1xxxxx011101xxxxxxxxxx
-                                                             trn2.  */
-                                                          return 1938;
+                                                             010001x1xx0xxxx111011xxxxxxxxxxx
+                                                             sqcadd.  */
+                                                          return 2166;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
-                                              else
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 13) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         000001x1xx1xxxxx010x11xxxxxxxxxx
-                                                         uzp2.  */
-                                                      return 1999;
+                                                         110001x1000xxxxx110xxxxxxxxxxxxx
+                                                         ldnt1w.  */
+                                                      return 2100;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         000001x1xx1xxxxx011x11xxxxxxxxxx
-                                                         uzp2.  */
-                                                      return 2000;
+                                                         110001x1100xxxxx110xxxxxxxxxxxxx
+                                                         ldnt1d.  */
+                                                      return 2093;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x1010xxxxx110xxxxxxxxxxxxx
+                                                         ld1w.  */
+                                                      return 1597;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x1110xxxxx110xxxxxxxxxxxxx
+                                                         ld1d.  */
+                                                      return 1519;
                                                     }
                                                 }
                                             }
                                         }
                                       else
                                                     }
                                                 }
                                             }
                                         }
                                       else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             000001x1xx1xxxxx11xxxxxxxxxxxxxx
-                                             sel.  */
-                                          return 1801;
-                                        }
-                                    }
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 13) & 0x1) == 0)
-                                {
-                                  if (((word >> 14) & 0x1) == 0)
-                                    {
-                                      if (((word >> 15) & 0x1) == 0)
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 100001x1x0xxxxxx000xxxxxxxxxxxxx
-                                                 ldr.  */
-                                              return 1705;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 100001x1x1xxxxxx000xxxxxxxxxxxxx
-                                                 prfb.  */
-                                              return 1749;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 100001x10xxxxxxx100xxxxxxxxxxxxx
-                                                 ld1rsh.  */
-                                              return 1534;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 100001x11xxxxxxx100xxxxxxxxxxxxx
-                                                 ld1rsb.  */
-                                              return 1531;
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 15) & 0x1) == 0)
                                         {
                                           if (((word >> 23) & 0x1) == 0)
                                             {
                                         {
                                           if (((word >> 23) & 0x1) == 0)
                                             {
-                                              if (((word >> 21) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     100001x10x0xxxxx010xxxxxxxxxxxxx
+                                                     x10001x1001xxxxx110xxxxxxxxxxxxx
                                                      ld1w.  */
                                                      ld1w.  */
-                                                  return 1569;
+                                                  return 1602;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     100001x10x1xxxxx010xxxxxxxxxxxxx
+                                                     x10001x1011xxxxx110xxxxxxxxxxxxx
                                                      ld1w.  */
                                                      ld1w.  */
-                                                  return 1570;
+                                                  return 1598;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 31) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     100001x110xxxxxx010xxxxxxxxxxxxx
-                                                     ldr.  */
-                                                  return 1706;
+                                                     010001x11x1xxxxx110xxxxxxxxxxxxx
+                                                     histcnt.  */
+                                                  return 2089;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x111xxxxxx010xxxxxxxxxxxxx
-                                                     prfw.  */
-                                                  return 1770;
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x1101xxxxx110xxxxxxxxxxxxx
+                                                         ld1d.  */
+                                                      return 1522;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x1111xxxxx110xxxxxxxxxxxxx
+                                                         ld1d.  */
+                                                      return 1520;
+                                                    }
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
-                                      else
+                                    }
+                                }
+                            }
+                          else
+                            {
+                              if (((word >> 14) & 0x1) == 0)
+                                {
+                                  if (((word >> 15) & 0x1) == 0)
+                                    {
+                                      if (((word >> 21) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 21) & 0x1) == 0)
+                                              if (((word >> 10) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 11) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         100001x1000xxxxx110xxxxxxxxxxxxx
-                                                         prfw.  */
-                                                      return 1766;
+                                                         010001x1xx0xxxxx001x00xxxxxxxxxx
+                                                         sabdlb.  */
+                                                      return 2126;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         100001x1100xxxxx110xxxxxxxxxxxxx
-                                                         prfd.  */
-                                                      return 1752;
+                                                         010001x1xx0xxxxx001x10xxxxxxxxxx
+                                                         uabdlb.  */
+                                                      return 2257;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x1x01xxxxx110xxxxxxxxxxxxx
-                                                     ld1w.  */
-                                                  return 1577;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x101xxxxxx110xxxxxxxxxxxxx
-                                                     ld1rw.  */
-                                                  return 1537;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x111xxxxxx110xxxxxxxxxxxxx
-                                                     ld1rsb.  */
-                                                  return 1533;
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         010001x1xx0xxxxx001x01xxxxxxxxxx
+                                                         sabdlt.  */
+                                                      return 2127;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         010001x1xx0xxxxx001x11xxxxxxxxxx
+                                                         uabdlt.  */
+                                                      return 2258;
+                                                    }
                                                 }
                                             }
                                                 }
                                             }
-                                        }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 14) & 0x1) == 0)
-                                    {
-                                      if (((word >> 15) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             100001x1xxxxxxxx001xxxxxxxxxxxxx
-                                             prfh.  */
-                                          return 1763;
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 100001x10xxxxxxx101xxxxxxxxxxxxx
-                                                 ld1rsh.  */
-                                              return 1535;
-                                            }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 100001x11xxxxxxx101xxxxxxxxxxxxx
-                                                 ld1rsb.  */
-                                              return 1532;
+                                                 110001x1xx0xxxxx001xxxxxxxxxxxxx
+                                                 ldff1sw.  */
+                                              return 1686;
                                             }
                                         }
                                             }
                                         }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 15) & 0x1) == 0)
+                                      else
                                         {
                                         {
-                                          if (((word >> 23) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 21) & 0x1) == 0)
+                                              if (((word >> 10) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x10x0xxxxx011xxxxxxxxxxxxx
-                                                     ldff1w.  */
-                                                  return 1669;
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx001000xxxxxxxxxx
+                                                             sqshrnb.  */
+                                                          return 2217;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx001100xxxxxxxxxx
+                                                             uqshrnb.  */
+                                                          return 2296;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx001010xxxxxxxxxx
+                                                             sqrshrnb.  */
+                                                          return 2209;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx001110xxxxxxxxxx
+                                                             uqrshrnb.  */
+                                                          return 2291;
+                                                        }
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x10x1xxxxx011xxxxxxxxxxxxx
-                                                     ldff1w.  */
-                                                  return 1670;
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx001001xxxxxxxxxx
+                                                             sqshrnt.  */
+                                                          return 2218;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx001101xxxxxxxxxx
+                                                             uqshrnt.  */
+                                                          return 2297;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx001011xxxxxxxxxx
+                                                             sqrshrnt.  */
+                                                          return 2210;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx001111xxxxxxxxxx
+                                                             uqrshrnt.  */
+                                                          return 2292;
+                                                        }
+                                                    }
                                                 }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                                 }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 100001x11xxxxxxx011xxxxxxxxxxxxx
-                                                 prfd.  */
-                                              return 1756;
+                                                 110001x1xx1xxxxx001xxxxxxxxxxxxx
+                                                 ldff1sw.  */
+                                              return 1687;
                                             }
                                         }
                                             }
                                         }
-                                      else
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 21) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 21) & 0x1) == 0)
+                                              if (((word >> 10) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 11) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         100001x1000xxxxx111xxxxxxxxxxxxx
-                                                         prfw.  */
-                                                      return 1769;
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx101000xxxxxxxxxx
+                                                             sshllb.  */
+                                                          return 2233;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx101100xxxxxxxxxx
+                                                             bext.  */
+                                                          return 2338;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx101010xxxxxxxxxx
+                                                             ushllb.  */
+                                                          return 2309;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx101110xxxxxxxxxx
+                                                             bgrp.  */
+                                                          return 2339;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx101001xxxxxxxxxx
+                                                             sshllt.  */
+                                                          return 2234;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx101101xxxxxxxxxx
+                                                             bdep.  */
+                                                          return 2337;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         100001x1100xxxxx111xxxxxxxxxxxxx
-                                                         prfd.  */
-                                                      return 1755;
+                                                         010001x1xx0xxxxx101x11xxxxxxxxxx
+                                                         ushllt.  */
+                                                      return 2310;
                                                     }
                                                 }
                                                     }
                                                 }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     100001x1x01xxxxx111xxxxxxxxxxxxx
-                                                     ldff1w.  */
-                                                  return 1679;
-                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 110001x1xx0xxxxx101xxxxxxxxxxxxx
+                                                 ldff1sw.  */
+                                              return 1688;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 31) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     100001x101xxxxxx111xxxxxxxxxxxxx
-                                                     ld1rw.  */
-                                                  return 1538;
+                                                     010001x1x01xxxxx101xxxxxxxxxxxxx
+                                                     histseg.  */
+                                                  return 2090;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     100001x111xxxxxx111xxxxxxxxxxxxx
-                                                     ld1rd.  */
-                                                  return 1519;
+                                                     110001x1x01xxxxx101xxxxxxxxxxxxx
+                                                     ldff1sw.  */
+                                                  return 1690;
                                                 }
                                             }
                                                 }
                                             }
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                      else
-                        {
-                          if (((word >> 13) & 0x1) == 0)
-                            {
-                              if (((word >> 14) & 0x1) == 0)
-                                {
-                                  if (((word >> 15) & 0x1) == 0)
-                                    {
-                                      if (((word >> 21) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             x10001x1xx0xxxxx000xxxxxxxxxxxxx
-                                             ld1sw.  */
-                                          return 1563;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             x10001x1xx1xxxxx000xxxxxxxxxxxxx
-                                             ld1sw.  */
-                                          return 1564;
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 21) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             x10001x1xx0xxxxx100xxxxxxxxxxxxx
-                                             ld1sw.  */
-                                          return 1565;
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x1x01xxxxx100xxxxxxxxxxxxx
-                                                 ld1sw.  */
-                                              return 1568;
-                                            }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 x10001x1x11xxxxx100xxxxxxxxxxxxx
-                                                 ld1sw.  */
-                                              return 1566;
+                                                 x10001x1x11xxxxx101xxxxxxxxxxxxx
+                                                 ldff1sw.  */
+                                              return 1689;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -8515,83 +11801,218 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       if (((word >> 21) & 0x1) == 0)
                                         {
                                     {
                                       if (((word >> 21) & 0x1) == 0)
                                         {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x10x0xxxxx010xxxxxxxxxxxxx
-                                                 ld1w.  */
-                                              return 1573;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x11x0xxxxx010xxxxxxxxxxxxx
-                                                 ld1d.  */
-                                              return 1495;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x10x1xxxxx010xxxxxxxxxxxxx
-                                                 ld1w.  */
-                                              return 1574;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x11x1xxxxx010xxxxxxxxxxxxx
-                                                 ld1d.  */
-                                              return 1496;
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 21) & 0x1) == 0)
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x10x0xxxxx110xxxxxxxxxxxxx
-                                                 ld1w.  */
-                                              return 1575;
+                                              if (((word >> 10) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx011000xxxxxxxxxx
+                                                             sqdmullb.  */
+                                                          return 2187;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx011100xxxxxxxxxx
+                                                             smullb.  */
+                                                          return 2159;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x1x00xxxxx011010xxxxxxxxxx
+                                                                 pmullb.  */
+                                                              return 2334;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x1x10xxxxx011010xxxxxxxxxx
+                                                                 pmullb.  */
+                                                              return 2115;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx011110xxxxxxxxxx
+                                                             umullb.  */
+                                                          return 2284;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx011001xxxxxxxxxx
+                                                             sqdmullt.  */
+                                                          return 2190;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx011101xxxxxxxxxx
+                                                             smullt.  */
+                                                          return 2162;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 22) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x1x00xxxxx011011xxxxxxxxxx
+                                                                 pmullt.  */
+                                                              return 2335;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x1x10xxxxx011011xxxxxxxxxx
+                                                                 pmullt.  */
+                                                              return 2116;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx011111xxxxxxxxxx
+                                                             umullt.  */
+                                                          return 2287;
+                                                        }
+                                                    }
+                                                }
                                             }
                                           else
                                             }
                                           else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x11x0xxxxx110xxxxxxxxxxxxx
-                                                 ld1d.  */
-                                              return 1497;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                               if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                             {
                                               if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x10001x1001xxxxx110xxxxxxxxxxxxx
-                                                     ld1w.  */
-                                                  return 1580;
+                                                     110001x10x0xxxxx011xxxxxxxxxxxxx
+                                                     ldff1w.  */
+                                                  return 1697;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x10001x1101xxxxx110xxxxxxxxxxxxx
-                                                     ld1d.  */
-                                                  return 1500;
+                                                     110001x11x0xxxxx011xxxxxxxxxxxxx
+                                                     ldff1d.  */
+                                                  return 1642;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 10) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx011000xxxxxxxxxx
+                                                             addhnb.  */
+                                                          return 2051;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx011100xxxxxxxxxx
+                                                             subhnb.  */
+                                                          return 2249;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx011010xxxxxxxxxx
+                                                             raddhnb.  */
+                                                          return 2117;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx011110xxxxxxxxxx
+                                                             rsubhnb.  */
+                                                          return 2121;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx011001xxxxxxxxxx
+                                                             addhnt.  */
+                                                          return 2052;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx011101xxxxxxxxxx
+                                                             subhnt.  */
+                                                          return 2250;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx011011xxxxxxxxxx
+                                                             raddhnt.  */
+                                                          return 2118;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx1xxxxx011111xxxxxxxxxx
+                                                             rsubhnt.  */
+                                                          return 2122;
+                                                        }
+                                                    }
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -8600,160 +12021,149 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x10001x1011xxxxx110xxxxxxxxxxxxx
-                                                     ld1w.  */
-                                                  return 1576;
+                                                     110001x10x1xxxxx011xxxxxxxxxxxxx
+                                                     ldff1w.  */
+                                                  return 1698;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     x10001x1111xxxxx110xxxxxxxxxxxxx
-                                                     ld1d.  */
-                                                  return 1498;
+                                                     110001x11x1xxxxx011xxxxxxxxxxxxx
+                                                     ldff1d.  */
+                                                  return 1643;
                                                 }
                                             }
                                         }
                                     }
                                                 }
                                             }
                                         }
                                     }
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 14) & 0x1) == 0)
-                                {
-                                  if (((word >> 15) & 0x1) == 0)
-                                    {
-                                      if (((word >> 21) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             x10001x1xx0xxxxx001xxxxxxxxxxxxx
-                                             ldff1sw.  */
-                                          return 1664;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             x10001x1xx1xxxxx001xxxxxxxxxxxxx
-                                             ldff1sw.  */
-                                          return 1665;
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 21) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             x10001x1xx0xxxxx101xxxxxxxxxxxxx
-                                             ldff1sw.  */
-                                          return 1666;
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x1x01xxxxx101xxxxxxxxxxxxx
-                                                 ldff1sw.  */
-                                              return 1668;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x1x11xxxxx101xxxxxxxxxxxxx
-                                                 ldff1sw.  */
-                                              return 1667;
-                                            }
-                                        }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 15) & 0x1) == 0)
-                                    {
-                                      if (((word >> 21) & 0x1) == 0)
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x10x0xxxxx011xxxxxxxxxxxxx
-                                                 ldff1w.  */
-                                              return 1675;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x11x0xxxxx011xxxxxxxxxxxxx
-                                                 ldff1d.  */
-                                              return 1620;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x10x1xxxxx011xxxxxxxxxxxxx
-                                                 ldff1w.  */
-                                              return 1676;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x10001x11x1xxxxx011xxxxxxxxxxxxx
-                                                 ldff1d.  */
-                                              return 1621;
-                                            }
-                                        }
-                                    }
                                   else
                                     {
                                       if (((word >> 21) & 0x1) == 0)
                                         {
                                   else
                                     {
                                       if (((word >> 21) & 0x1) == 0)
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 10) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x1000xxxxx111xxxxxxxxxxxxx
-                                                     prfw.  */
-                                                  return 1771;
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx111000xxxxxxxxxx
+                                                             ssra.  */
+                                                          return 2235;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx111100xxxxxxxxxx
+                                                             sri.  */
+                                                          return 2228;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx111010xxxxxxxxxx
+                                                             srsra.  */
+                                                          return 2232;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx111110xxxxxxxxxx
+                                                             saba.  */
+                                                          return 2123;
+                                                        }
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x1100xxxxx111xxxxxxxxxxxxx
-                                                     prfd.  */
-                                                  return 1757;
+                                                  if (((word >> 11) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx111001xxxxxxxxxx
+                                                             usra.  */
+                                                          return 2312;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx111101xxxxxxxxxx
+                                                             sli.  */
+                                                          return 2141;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 12) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx111011xxxxxxxxxx
+                                                             ursra.  */
+                                                          return 2308;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x1xx0xxxxx111111xxxxxxxxxx
+                                                             uaba.  */
+                                                          return 2254;
+                                                        }
+                                                    }
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x1010xxxxx111xxxxxxxxxxxxx
-                                                     ldff1w.  */
-                                                  return 1677;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x1000xxxxx111xxxxxxxxxxxxx
+                                                         prfw.  */
+                                                      return 1793;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x1100xxxxx111xxxxxxxxxxxxx
+                                                         prfd.  */
+                                                      return 1779;
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x1110xxxxx111xxxxxxxxxxxxx
-                                                     ldff1d.  */
-                                                  return 1622;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x1010xxxxx111xxxxxxxxxxxxx
+                                                         ldff1w.  */
+                                                      return 1699;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x1110xxxxx111xxxxxxxxxxxxx
+                                                         ldff1d.  */
+                                                      return 1644;
+                                                    }
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -8763,11 +12173,88 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               if (((word >> 23) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 23) & 0x1) == 0)
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     x10001x1001xxxxx111xxxxxxxxxxxxx
-                                                     ldff1w.  */
-                                                  return 1680;
+                                                  if (((word >> 31) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 10) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 16) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 17) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         010001x1001xxx001110x0xxxxxxxxxx
+                                                                         aesmc.  */
+                                                                      return 2333;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         010001x1001xxx101110x0xxxxxxxxxx
+                                                                         aese.  */
+                                                                      return 2331;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x1001xxxx11110x0xxxxxxxxxx
+                                                                     sm4e.  */
+                                                                  return 2328;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x1001xxxxx1111x0xxxxxxxxxx
+                                                                 sm4ekey.  */
+                                                              return 2329;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 17) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x1001xxx0x1110x1xxxxxxxxxx
+                                                                     aesimc.  */
+                                                                  return 2332;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     010001x1001xxx1x1110x1xxxxxxxxxx
+                                                                     aesd.  */
+                                                                  return 2330;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 010001x1001xxxxx1111x1xxxxxxxxxx
+                                                                 rax1.  */
+                                                              return 2336;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         110001x1001xxxxx111xxxxxxxxxxxxx
+                                                         ldff1w.  */
+                                                      return 1702;
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -8775,7 +12262,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x10001x1101xxxxx111xxxxxxxxxxxxx
                                                      ldff1d.  */
                                                      10987654321098765432109876543210
                                                      x10001x1101xxxxx111xxxxxxxxxxxxx
                                                      ldff1d.  */
-                                                  return 1624;
+                                                  return 1646;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -8786,7 +12273,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x10001x1011xxxxx111xxxxxxxxxxxxx
                                                      ldff1w.  */
                                                      10987654321098765432109876543210
                                                      x10001x1011xxxxx111xxxxxxxxxxxxx
                                                      ldff1w.  */
-                                                  return 1678;
+                                                  return 1700;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -8794,7 +12281,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x10001x1111xxxxx111xxxxxxxxxxxxx
                                                      ldff1d.  */
                                                      10987654321098765432109876543210
                                                      x10001x1111xxxxx111xxxxxxxxxxxxx
                                                      ldff1d.  */
-                                                  return 1623;
+                                                  return 1645;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -8823,7 +12310,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      001001x1xx0xxxxx000xxxxxxxx0xxxx
                                                      cmpge.  */
                                                      10987654321098765432109876543210
                                                      001001x1xx0xxxxx000xxxxxxxx0xxxx
                                                      cmpge.  */
-                                                  return 1303;
+                                                  return 1325;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -8831,7 +12318,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      001001x1xx0xxxxx000xxxxxxxx1xxxx
                                                      cmpgt.  */
                                                      10987654321098765432109876543210
                                                      001001x1xx0xxxxx000xxxxxxxx1xxxx
                                                      cmpgt.  */
-                                                  return 1306;
+                                                  return 1328;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -8842,7 +12329,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x10x0xxxxx000xxxxxxxxxxxxx
                                                      ld1rqw.  */
                                                      10987654321098765432109876543210
                                                      101001x10x0xxxxx000xxxxxxxxxxxxx
                                                      ld1rqw.  */
-                                                  return 1530;
+                                                  return 1552;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -8850,92 +12337,202 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x11x0xxxxx000xxxxxxxxxxxxx
                                                      ld1rqd.  */
                                                      10987654321098765432109876543210
                                                      101001x11x0xxxxx000xxxxxxxxxxxxx
                                                      ld1rqd.  */
-                                                  return 1526;
+                                                  return 1548;
                                                 }
                                             }
                                         }
                                       else
                                         {
                                                 }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 4) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 11) & 0x1) == 0)
+                                              if (((word >> 4) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 12) & 0x1) == 0)
+                                                  if (((word >> 10) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x01001x1xx1xxxxx00000xxxxxx0xxxx
-                                                         whilelt.  */
-                                                      return 2007;
+                                                      if (((word >> 11) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000000xxxxx0xxxx
+                                                                 whilege.  */
+                                                              return 2317;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000100xxxxx0xxxx
+                                                                 whilege.  */
+                                                              return 2318;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000010xxxxx0xxxx
+                                                                 whilehs.  */
+                                                              return 2323;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000110xxxxx0xxxx
+                                                                 whilehs.  */
+                                                              return 2324;
+                                                            }
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x01001x1xx1xxxxx00010xxxxxx0xxxx
-                                                         whilelt.  */
-                                                      return 2008;
+                                                      if (((word >> 11) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000001xxxxx0xxxx
+                                                                 whilelt.  */
+                                                              return 2029;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000101xxxxx0xxxx
+                                                                 whilelt.  */
+                                                              return 2030;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000011xxxxx0xxxx
+                                                                 whilelo.  */
+                                                              return 2025;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000111xxxxx0xxxx
+                                                                 whilelo.  */
+                                                              return 2026;
+                                                            }
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 12) & 0x1) == 0)
+                                                  if (((word >> 10) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x01001x1xx1xxxxx00001xxxxxx0xxxx
-                                                         whilelo.  */
-                                                      return 2003;
+                                                      if (((word >> 11) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000000xxxxx1xxxx
+                                                                 whilegt.  */
+                                                              return 2319;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000100xxxxx1xxxx
+                                                                 whilegt.  */
+                                                              return 2320;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000010xxxxx1xxxx
+                                                                 whilehi.  */
+                                                              return 2321;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000110xxxxx1xxxx
+                                                                 whilehi.  */
+                                                              return 2322;
+                                                            }
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x01001x1xx1xxxxx00011xxxxxx0xxxx
-                                                         whilelo.  */
-                                                      return 2004;
+                                                      if (((word >> 11) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000001xxxxx1xxxx
+                                                                 whilele.  */
+                                                              return 2023;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000101xxxxx1xxxx
+                                                                 whilele.  */
+                                                              return 2024;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 12) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000011xxxxx1xxxx
+                                                                 whilels.  */
+                                                              return 2027;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x1xx1xxxxx000111xxxxx1xxxx
+                                                                 whilels.  */
+                                                              return 2028;
+                                                            }
+                                                        }
                                                     }
                                                 }
                                             }
                                           else
                                             {
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 11) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 12) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x01001x1xx1xxxxx00000xxxxxx1xxxx
-                                                         whilele.  */
-                                                      return 2001;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x01001x1xx1xxxxx00010xxxxxx1xxxx
-                                                         whilele.  */
-                                                      return 2002;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x10x1xxxxx000xxxxxxxxxxxxx
+                                                     ld1row.  */
+                                                  return 2403;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 12) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x01001x1xx1xxxxx00001xxxxxx1xxxx
-                                                         whilels.  */
-                                                      return 2005;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x01001x1xx1xxxxx00011xxxxxx1xxxx
-                                                         whilels.  */
-                                                      return 2006;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x11x1xxxxx000xxxxxxxxxxxxx
+                                                     ld1rod.  */
+                                                  return 2404;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -8954,7 +12551,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x1xx0xxxxx000x00xxxxxxxxxx
                                                          fadd.  */
                                                          10987654321098765432109876543210
                                                          011001x1xx0xxxxx000x00xxxxxxxxxx
                                                          fadd.  */
-                                                      return 1361;
+                                                      return 1383;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -8964,7 +12561,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x1xx0xxxxx000010xxxxxxxxxx
                                                              fmul.  */
                                                              10987654321098765432109876543210
                                                              011001x1xx0xxxxx000010xxxxxxxxxx
                                                              fmul.  */
-                                                          return 1428;
+                                                          return 1450;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -8972,7 +12569,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x1xx0xxxxx000110xxxxxxxxxx
                                                              frecps.  */
                                                              10987654321098765432109876543210
                                                              011001x1xx0xxxxx000110xxxxxxxxxx
                                                              frecps.  */
-                                                          return 1441;
+                                                          return 1463;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -8984,7 +12581,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x1xx0xxxxx000x01xxxxxxxxxx
                                                          fsub.  */
                                                          10987654321098765432109876543210
                                                          011001x1xx0xxxxx000x01xxxxxxxxxx
                                                          fsub.  */
-                                                      return 1454;
+                                                      return 1476;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -8994,7 +12591,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x1xx0xxxxx000011xxxxxxxxxx
                                                              ftsmul.  */
                                                              10987654321098765432109876543210
                                                              011001x1xx0xxxxx000011xxxxxxxxxx
                                                              ftsmul.  */
-                                                          return 1460;
+                                                          return 1482;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -9002,7 +12599,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              011001x1xx0xxxxx000111xxxxxxxxxx
                                                              frsqrts.  */
                                                              10987654321098765432109876543210
                                                              011001x1xx0xxxxx000111xxxxxxxxxx
                                                              frsqrts.  */
-                                                          return 1451;
+                                                          return 1473;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -9013,7 +12610,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx000xxxxxxxxxxxxx
                                                  fmla.  */
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx000xxxxxxxxxxxxx
                                                  fmla.  */
-                                              return 1419;
+                                              return 1441;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -9022,7 +12619,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              111001x1xxxxxxxx000xxxxxxxxxxxxx
                                              str.  */
                                              10987654321098765432109876543210
                                              111001x1xxxxxxxx000xxxxxxxxxxxxx
                                              str.  */
-                                          return 1922;
+                                          return 1944;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -9040,7 +12637,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      001001x1xx0xxxxx001xxxxxxxx0xxxx
                                                      cmplt.  */
                                                      10987654321098765432109876543210
                                                      001001x1xx0xxxxx001xxxxxxxx0xxxx
                                                      cmplt.  */
-                                                  return 1320;
+                                                  return 1342;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -9048,7 +12645,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      001001x1xx0xxxxx001xxxxxxxx1xxxx
                                                      cmple.  */
                                                      10987654321098765432109876543210
                                                      001001x1xx0xxxxx001xxxxxxxx1xxxx
                                                      cmple.  */
-                                                  return 1314;
+                                                  return 1336;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -9059,7 +12656,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x10x0xxxxx001xxxxxxxxxxxxx
                                                      ld1rqw.  */
                                                      10987654321098765432109876543210
                                                      101001x10x0xxxxx001xxxxxxxxxxxxx
                                                      ld1rqw.  */
-                                                  return 1529;
+                                                  return 1551;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -9067,181 +12664,258 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      101001x11x0xxxxx001xxxxxxxxxxxxx
                                                      ld1rqd.  */
                                                      10987654321098765432109876543210
                                                      101001x11x0xxxxx001xxxxxxxxxxxxx
                                                      ld1rqd.  */
-                                                  return 1525;
+                                                  return 1547;
                                                 }
                                             }
                                         }
                                       else
                                         {
                                                 }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 16) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 17) & 0x1) == 0)
+                                              if (((word >> 16) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 18) & 0x1) == 0)
+                                                  if (((word >> 17) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 19) & 0x1) == 0)
+                                                      if (((word >> 18) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 20) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 x11001x1xx000000001xxxxxxxxxxxxx
-                                                                 faddv.  */
-                                                              return 1365;
-                                                            }
-                                                          else
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 4) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     x11001x1xx010000001xxxxxxxx0xxxx
-                                                                     fcmge.  */
-                                                                  return 1372;
+                                                                     011001x1xx000000001xxxxxxxxxxxxx
+                                                                     faddv.  */
+                                                                  return 1387;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     x11001x1xx010000001xxxxxxxx1xxxx
-                                                                     fcmgt.  */
-                                                                  return 1374;
+                                                                  if (((word >> 4) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         011001x1xx010000001xxxxxxxx0xxxx
+                                                                         fcmge.  */
+                                                                      return 1394;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         011001x1xx010000001xxxxxxxx1xxxx
+                                                                         fcmgt.  */
+                                                                      return 1396;
+                                                                    }
                                                                 }
                                                             }
                                                                 }
                                                             }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 011001x1xx0x1000001xxxxxxxxxxxxx
+                                                                 fadda.  */
+                                                              return 1386;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x1xx0xx100001xxxxxxxxxxxxx
+                                                             fmaxnmv.  */
+                                                          return 1433;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x1xx0xx010001xxxxxxxxxxxxx
+                                                             fcmeq.  */
+                                                          return 1392;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 011001x1xx0x0110001xxxxxxxxxxxxx
+                                                                 fmaxv.  */
+                                                              return 1434;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 011001x1xx0x1110001xxxxxxxxxxxxx
+                                                                 frecpe.  */
+                                                              return 1462;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 17) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 4) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 011001x1xx0xx001001xxxxxxxx0xxxx
+                                                                 fcmlt.  */
+                                                              return 1399;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 011001x1xx0xx001001xxxxxxxx1xxxx
+                                                                 fcmle.  */
+                                                              return 1398;
+                                                            }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             x11001x1xx0x1000001xxxxxxxxxxxxx
-                                                             fadda.  */
-                                                          return 1364;
+                                                             011001x1xx0xx101001xxxxxxxxxxxxx
+                                                             fminnmv.  */
+                                                          return 1439;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             011001x1xx0xx011001xxxxxxxxxxxxx
+                                                             fcmne.  */
+                                                          return 1400;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 011001x1xx0x0111001xxxxxxxxxxxxx
+                                                                 fminv.  */
+                                                              return 1440;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 011001x1xx0x1111001xxxxxxxxxxxxx
+                                                                 frsqrte.  */
+                                                              return 1472;
+                                                            }
                                                         }
                                                     }
                                                         }
                                                     }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x1000xxxxx001xxxxxxxxxxxxx
+                                                         stnt1w.  */
+                                                      return 2248;
+                                                    }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         x11001x1xx0xx100001xxxxxxxxxxxxx
-                                                         fmaxnmv.  */
-                                                      return 1411;
+                                                         111001x1100xxxxx001xxxxxxxxxxxxx
+                                                         stnt1d.  */
+                                                      return 2244;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 18) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         x11001x1xx0xx010001xxxxxxxxxxxxx
-                                                         fcmeq.  */
-                                                      return 1370;
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 19) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             x11001x1xx0x0110001xxxxxxxxxxxxx
-                                                             fmaxv.  */
-                                                          return 1412;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             x11001x1xx0x1110001xxxxxxxxxxxxx
-                                                             frecpe.  */
-                                                          return 1440;
-                                                        }
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x1x10xxxxx001xxxxxxxxxxxxx
+                                                     stnt1w.  */
+                                                  return 2247;
                                                 }
                                             }
                                                 }
                                             }
-                                          else
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 17) & 0x1) == 0)
+                                              if (((word >> 4) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 18) & 0x1) == 0)
+                                                  if (((word >> 12) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 4) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             x11001x1xx0xx001001xxxxxxxx0xxxx
-                                                             fcmlt.  */
-                                                          return 1377;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             x11001x1xx0xx001001xxxxxxxx1xxxx
-                                                             fcmle.  */
-                                                          return 1376;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         001001x1xx1xxxxx0010xxxxxxx0xxxx
+                                                         ctermeq.  */
+                                                      return 1357;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         x11001x1xx0xx101001xxxxxxxxxxxxx
-                                                         fminnmv.  */
-                                                      return 1417;
+                                                         001001x1xx1xxxxx0011xxxxxxx0xxxx
+                                                         whilewr.  */
+                                                      return 2326;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 18) & 0x1) == 0)
+                                                  if (((word >> 12) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         x11001x1xx0xx011001xxxxxxxxxxxxx
-                                                         fcmne.  */
-                                                      return 1378;
+                                                         001001x1xx1xxxxx0010xxxxxxx1xxxx
+                                                         ctermne.  */
+                                                      return 1358;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 19) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             x11001x1xx0x0111001xxxxxxxxxxxxx
-                                                             fminv.  */
-                                                          return 1418;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             x11001x1xx0x1111001xxxxxxxxxxxxx
-                                                             frsqrte.  */
-                                                          return 1450;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         001001x1xx1xxxxx0011xxxxxxx1xxxx
+                                                         whilerw.  */
+                                                      return 2325;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 30) & 0x1) == 0)
-                                        {
-                                          if (((word >> 4) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x01001x1xx1xxxxx001xxxxxxxx0xxxx
-                                                 ctermeq.  */
-                                              return 1335;
-                                            }
                                           else
                                             {
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 x01001x1xx1xxxxx001xxxxxxxx1xxxx
-                                                 ctermne.  */
-                                              return 1336;
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x10x1xxxxx001xxxxxxxxxxxxx
+                                                     ld1row.  */
+                                                  return 2407;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x11x1xxxxx001xxxxxxxxxxxxx
+                                                     ld1rod.  */
+                                                  return 2408;
+                                                }
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -9250,7 +12924,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x11001x1xx1xxxxx001xxxxxxxxxxxxx
                                              fmls.  */
                                              10987654321098765432109876543210
                                              x11001x1xx1xxxxx001xxxxxxxxxxxxx
                                              fmls.  */
-                                          return 1423;
+                                          return 1445;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -9277,7 +12951,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x10000xxxx01xxxx0xxxx0xxxx
                                                                  and.  */
                                                                  10987654321098765432109876543210
                                                                  001001x10000xxxx01xxxx0xxxx0xxxx
                                                                  and.  */
-                                                              return 1266;
+                                                              return 1288;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -9285,7 +12959,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x10000xxxx01xxxx0xxxx1xxxx
                                                                  bic.  */
                                                                  10987654321098765432109876543210
                                                                  001001x10000xxxx01xxxx0xxxx1xxxx
                                                                  bic.  */
-                                                              return 1278;
+                                                              return 1300;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -9296,7 +12970,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x100010xxx01xxxx0xxxxxxxxx
                                                                  brka.  */
                                                                  10987654321098765432109876543210
                                                                  001001x100010xxx01xxxx0xxxxxxxxx
                                                                  brka.  */
-                                                              return 1280;
+                                                              return 1302;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -9304,7 +12978,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x100011xxx01xxxx0xxxxxxxxx
                                                                  brkn.  */
                                                                  10987654321098765432109876543210
                                                                  001001x100011xxx01xxxx0xxxxxxxxx
                                                                  brkn.  */
-                                                              return 1284;
+                                                              return 1306;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -9316,7 +12990,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1000xxxxx01xxxx1xxxx0xxxx
                                                              eor.  */
                                                              10987654321098765432109876543210
                                                              001001x1000xxxxx01xxxx1xxxx0xxxx
                                                              eor.  */
-                                                          return 1353;
+                                                          return 1375;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -9324,7 +12998,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1000xxxxx01xxxx1xxxx1xxxx
                                                              sel.  */
                                                              10987654321098765432109876543210
                                                              001001x1000xxxxx01xxxx1xxxx1xxxx
                                                              sel.  */
-                                                          return 1802;
+                                                          return 1824;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -9336,7 +13010,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1000xxxxx010xxxxxxxxxxxxx
                                                          ld1sh.  */
                                                          10987654321098765432109876543210
                                                          101001x1000xxxxx010xxxxxxxxxxxxx
                                                          ld1sh.  */
-                                                      return 1552;
+                                                      return 1574;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9344,7 +13018,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1000xxxxx011xxxxxxxxxxxxx
                                                          ldff1sh.  */
                                                          10987654321098765432109876543210
                                                          101001x1000xxxxx011xxxxxxxxxxxxx
                                                          ldff1sh.  */
-                                                      return 1652;
+                                                      return 1674;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9362,7 +13036,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x11000xxxx01xxxx0xxxx0xxxx
                                                                  orr.  */
                                                                  10987654321098765432109876543210
                                                                  001001x11000xxxx01xxxx0xxxx0xxxx
                                                                  orr.  */
-                                                              return 1738;
+                                                              return 1760;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -9370,7 +13044,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x11000xxxx01xxxx0xxxx1xxxx
                                                                  orn.  */
                                                                  10987654321098765432109876543210
                                                                  001001x11000xxxx01xxxx0xxxx1xxxx
                                                                  orn.  */
-                                                              return 1733;
+                                                              return 1755;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -9379,7 +13053,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x11001xxxx01xxxx0xxxxxxxxx
                                                              brkb.  */
                                                              10987654321098765432109876543210
                                                              001001x11001xxxx01xxxx0xxxxxxxxx
                                                              brkb.  */
-                                                          return 1282;
+                                                          return 1304;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -9390,7 +13064,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1100xxxxx01xxxx1xxxx0xxxx
                                                              nor.  */
                                                              10987654321098765432109876543210
                                                              001001x1100xxxxx01xxxx1xxxx0xxxx
                                                              nor.  */
-                                                          return 1730;
+                                                          return 1752;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -9398,7 +13072,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1100xxxxx01xxxx1xxxx1xxxx
                                                              nand.  */
                                                              10987654321098765432109876543210
                                                              001001x1100xxxxx01xxxx1xxxx1xxxx
                                                              nand.  */
-                                                          return 1727;
+                                                          return 1749;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -9410,7 +13084,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1100xxxxx010xxxxxxxxxxxxx
                                                          ld1sb.  */
                                                          10987654321098765432109876543210
                                                          101001x1100xxxxx010xxxxxxxxxxxxx
                                                          ld1sb.  */
-                                                      return 1540;
+                                                      return 1562;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9418,7 +13092,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1100xxxxx011xxxxxxxxxxxxx
                                                          ldff1sb.  */
                                                          10987654321098765432109876543210
                                                          101001x1100xxxxx011xxxxxxxxxxxxx
                                                          ldff1sb.  */
-                                                      return 1640;
+                                                      return 1662;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9439,7 +13113,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x10100xxxx01xxxx0xxxx0xxxx
                                                                  ands.  */
                                                                  10987654321098765432109876543210
                                                                  001001x10100xxxx01xxxx0xxxx0xxxx
                                                                  ands.  */
-                                                              return 1267;
+                                                              return 1289;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -9449,7 +13123,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      001001x101010xxx01xxxx0xxxx0xxxx
                                                                      brkas.  */
                                                                      10987654321098765432109876543210
                                                                      001001x101010xxx01xxxx0xxxx0xxxx
                                                                      brkas.  */
-                                                                  return 1281;
+                                                                  return 1303;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -9457,7 +13131,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      001001x101011xxx01xxxx0xxxx0xxxx
                                                                      brkns.  */
                                                                      10987654321098765432109876543210
                                                                      001001x101011xxx01xxxx0xxxx0xxxx
                                                                      brkns.  */
-                                                                  return 1285;
+                                                                  return 1307;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -9467,7 +13141,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1010xxxxx01xxxx1xxxx0xxxx
                                                              eors.  */
                                                              10987654321098765432109876543210
                                                              001001x1010xxxxx01xxxx1xxxx0xxxx
                                                              eors.  */
-                                                          return 1354;
+                                                          return 1376;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -9476,7 +13150,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          001001x1010xxxxx01xxxxxxxxx1xxxx
                                                          bics.  */
                                                          10987654321098765432109876543210
                                                          001001x1010xxxxx01xxxxxxxxx1xxxx
                                                          bics.  */
-                                                      return 1279;
+                                                      return 1301;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -9487,7 +13161,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1010xxxxx010xxxxxxxxxxxxx
                                                          ld1w.  */
                                                          10987654321098765432109876543210
                                                          101001x1010xxxxx010xxxxxxxxxxxxx
                                                          ld1w.  */
-                                                      return 1571;
+                                                      return 1593;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9495,7 +13169,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1010xxxxx011xxxxxxxxxxxxx
                                                          ldff1w.  */
                                                          10987654321098765432109876543210
                                                          101001x1010xxxxx011xxxxxxxxxxxxx
                                                          ldff1w.  */
-                                                      return 1671;
+                                                      return 1693;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9513,7 +13187,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x11100xxxx01xxxx0xxxx0xxxx
                                                                  orrs.  */
                                                                  10987654321098765432109876543210
                                                                  001001x11100xxxx01xxxx0xxxx0xxxx
                                                                  orrs.  */
-                                                              return 1739;
+                                                              return 1761;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -9521,7 +13195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x11101xxxx01xxxx0xxxx0xxxx
                                                                  brkbs.  */
                                                                  10987654321098765432109876543210
                                                                  001001x11101xxxx01xxxx0xxxx0xxxx
                                                                  brkbs.  */
-                                                              return 1283;
+                                                              return 1305;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -9530,7 +13204,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1110xxxxx01xxxx1xxxx0xxxx
                                                              nors.  */
                                                              10987654321098765432109876543210
                                                              001001x1110xxxxx01xxxx1xxxx0xxxx
                                                              nors.  */
-                                                          return 1731;
+                                                          return 1753;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -9541,7 +13215,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1110xxxxx01xxxx0xxxx1xxxx
                                                              orns.  */
                                                              10987654321098765432109876543210
                                                              001001x1110xxxxx01xxxx0xxxx1xxxx
                                                              orns.  */
-                                                          return 1734;
+                                                          return 1756;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -9549,7 +13223,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1110xxxxx01xxxx1xxxx1xxxx
                                                              nands.  */
                                                              10987654321098765432109876543210
                                                              001001x1110xxxxx01xxxx1xxxx1xxxx
                                                              nands.  */
-                                                          return 1728;
+                                                          return 1750;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -9561,7 +13235,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1110xxxxx010xxxxxxxxxxxxx
                                                          ld1sb.  */
                                                          10987654321098765432109876543210
                                                          101001x1110xxxxx010xxxxxxxxxxxxx
                                                          ld1sb.  */
-                                                      return 1542;
+                                                      return 1564;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9569,7 +13243,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1110xxxxx011xxxxxxxxxxxxx
                                                          ldff1sb.  */
                                                          10987654321098765432109876543210
                                                          101001x1110xxxxx011xxxxxxxxxxxxx
                                                          ldff1sb.  */
-                                                      return 1644;
+                                                      return 1666;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9587,7 +13261,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x1001xxxxx010xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                      10987654321098765432109876543210
                                                      x01001x1001xxxxx010xxxxxxxxxxxxx
                                                      ld1sh.  */
-                                                  return 1553;
+                                                  return 1575;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -9595,7 +13269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x1101xxxxx010xxxxxxxxxxxxx
                                                      ld1sb.  */
                                                      10987654321098765432109876543210
                                                      x01001x1101xxxxx010xxxxxxxxxxxxx
                                                      ld1sb.  */
-                                                  return 1541;
+                                                  return 1563;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -9606,7 +13280,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x1011xxxxx010xxxxxxxxxxxxx
                                                      ld1w.  */
                                                      10987654321098765432109876543210
                                                      x01001x1011xxxxx010xxxxxxxxxxxxx
                                                      ld1w.  */
-                                                  return 1572;
+                                                  return 1594;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -9614,7 +13288,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x1111xxxxx010xxxxxxxxxxxxx
                                                      ld1d.  */
                                                      10987654321098765432109876543210
                                                      x01001x1111xxxxx010xxxxxxxxxxxxx
                                                      ld1d.  */
-                                                  return 1494;
+                                                  return 1516;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -9628,7 +13302,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x1001xxxxx011xxxxxxxxxxxxx
                                                      ldff1sh.  */
                                                      10987654321098765432109876543210
                                                      x01001x1001xxxxx011xxxxxxxxxxxxx
                                                      ldff1sh.  */
-                                                  return 1654;
+                                                  return 1676;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -9636,7 +13310,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x1101xxxxx011xxxxxxxxxxxxx
                                                      ldff1sb.  */
                                                      10987654321098765432109876543210
                                                      x01001x1101xxxxx011xxxxxxxxxxxxx
                                                      ldff1sb.  */
-                                                  return 1642;
+                                                  return 1664;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -9647,7 +13321,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x1011xxxxx011xxxxxxxxxxxxx
                                                      ldff1w.  */
                                                      10987654321098765432109876543210
                                                      x01001x1011xxxxx011xxxxxxxxxxxxx
                                                      ldff1w.  */
-                                                  return 1673;
+                                                  return 1695;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -9655,7 +13329,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x1111xxxxx011xxxxxxxxxxxxx
                                                      ldff1d.  */
                                                      10987654321098765432109876543210
                                                      x01001x1111xxxxx011xxxxxxxxxxxxx
                                                      ldff1d.  */
-                                                  return 1618;
+                                                  return 1640;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -9675,7 +13349,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      011001x1xx0xxxxx010xxxxxxxx0xxxx
                                                      fcmge.  */
                                                      10987654321098765432109876543210
                                                      011001x1xx0xxxxx010xxxxxxxx0xxxx
                                                      fcmge.  */
-                                                  return 1373;
+                                                  return 1395;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -9683,7 +13357,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      011001x1xx0xxxxx010xxxxxxxx1xxxx
                                                      fcmgt.  */
                                                      10987654321098765432109876543210
                                                      011001x1xx0xxxxx010xxxxxxxx1xxxx
                                                      fcmgt.  */
-                                                  return 1375;
+                                                  return 1397;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -9692,7 +13366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx010xxxxxxxxxxxxx
                                                  fnmla.  */
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx010xxxxxxxxxxxxx
                                                  fnmla.  */
-                                              return 1437;
+                                              return 1459;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -9703,7 +13377,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  111001x1x0xxxxxx010xxxxxxxxxxxxx
                                                  str.  */
                                                  10987654321098765432109876543210
                                                  111001x1x0xxxxxx010xxxxxxxxxxxxx
                                                  str.  */
-                                              return 1923;
+                                              return 1945;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -9713,7 +13387,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x1x10xxxxx010xxxxxxxxxxxxx
                                                      st1w.  */
                                                      10987654321098765432109876543210
                                                      111001x1x10xxxxx010xxxxxxxxxxxxx
                                                      st1w.  */
-                                                  return 1882;
+                                                  return 1904;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -9723,7 +13397,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1011xxxxx010xxxxxxxxxxxxx
                                                          st1w.  */
                                                          10987654321098765432109876543210
                                                          111001x1011xxxxx010xxxxxxxxxxxxx
                                                          st1w.  */
-                                                      return 1884;
+                                                      return 1906;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9731,7 +13405,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1111xxxxx010xxxxxxxxxxxxx
                                                          st1d.  */
                                                          10987654321098765432109876543210
                                                          111001x1111xxxxx010xxxxxxxxxxxxx
                                                          st1d.  */
-                                                      return 1861;
+                                                      return 1883;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9749,7 +13423,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      011001x1xx0xxxxx011xxxxxxxx0xxxx
                                                      fcmeq.  */
                                                      10987654321098765432109876543210
                                                      011001x1xx0xxxxx011xxxxxxxx0xxxx
                                                      fcmeq.  */
-                                                  return 1371;
+                                                  return 1393;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -9757,7 +13431,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      011001x1xx0xxxxx011xxxxxxxx1xxxx
                                                      fcmne.  */
                                                      10987654321098765432109876543210
                                                      011001x1xx0xxxxx011xxxxxxxx1xxxx
                                                      fcmne.  */
-                                                  return 1379;
+                                                  return 1401;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -9770,7 +13444,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1000xxxxx011xxxxxxxxxxxxx
                                                          stnt1w.  */
                                                          10987654321098765432109876543210
                                                          111001x1000xxxxx011xxxxxxxxxxxxx
                                                          stnt1w.  */
-                                                      return 1920;
+                                                      return 1942;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9778,7 +13452,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1100xxxxx011xxxxxxxxxxxxx
                                                          stnt1d.  */
                                                          10987654321098765432109876543210
                                                          111001x1100xxxxx011xxxxxxxxxxxxx
                                                          stnt1d.  */
-                                                      return 1916;
+                                                      return 1938;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -9789,7 +13463,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1010xxxxx011xxxxxxxxxxxxx
                                                          st3w.  */
                                                          10987654321098765432109876543210
                                                          111001x1010xxxxx011xxxxxxxxxxxxx
                                                          st3w.  */
-                                                      return 1904;
+                                                      return 1926;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9797,7 +13471,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1110xxxxx011xxxxxxxxxxxxx
                                                          st3d.  */
                                                          10987654321098765432109876543210
                                                          111001x1110xxxxx011xxxxxxxxxxxxx
                                                          st3d.  */
-                                                      return 1900;
+                                                      return 1922;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9810,7 +13484,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx011xxxxxxxxxxxxx
                                                  fnmls.  */
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx011xxxxxxxxxxxxx
                                                  fnmls.  */
-                                              return 1438;
+                                              return 1460;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -9822,7 +13496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1001xxxxx011xxxxxxxxxxxxx
                                                          st2w.  */
                                                          10987654321098765432109876543210
                                                          111001x1001xxxxx011xxxxxxxxxxxxx
                                                          st2w.  */
-                                                      return 1896;
+                                                      return 1918;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9830,7 +13504,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1101xxxxx011xxxxxxxxxxxxx
                                                          st2d.  */
                                                          10987654321098765432109876543210
                                                          111001x1101xxxxx011xxxxxxxxxxxxx
                                                          st2d.  */
-                                                      return 1892;
+                                                      return 1914;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -9841,7 +13515,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1011xxxxx011xxxxxxxxxxxxx
                                                          st4w.  */
                                                          10987654321098765432109876543210
                                                          111001x1011xxxxx011xxxxxxxxxxxxx
                                                          st4w.  */
-                                                      return 1912;
+                                                      return 1934;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9849,7 +13523,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1111xxxxx011xxxxxxxxxxxxx
                                                          st4d.  */
                                                          10987654321098765432109876543210
                                                          111001x1111xxxxx011xxxxxxxxxxxxx
                                                          st4d.  */
-                                                      return 1908;
+                                                      return 1930;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9874,7 +13548,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  x01001x1xx0xxxxx100xxxxxxxx0xxxx
                                                  cmpeq.  */
                                                  10987654321098765432109876543210
                                                  x01001x1xx0xxxxx100xxxxxxxx0xxxx
                                                  cmpeq.  */
-                                              return 1300;
+                                              return 1322;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -9882,7 +13556,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  x01001x1xx0xxxxx100xxxxxxxx1xxxx
                                                  cmpne.  */
                                                  10987654321098765432109876543210
                                                  x01001x1xx0xxxxx100xxxxxxxx1xxxx
                                                  cmpne.  */
-                                              return 1323;
+                                              return 1345;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -9897,7 +13571,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x01001x10000xxxx101xxxxxxxxxxxxx
                                                          ld1sh.  */
                                                          10987654321098765432109876543210
                                                          x01001x10000xxxx101xxxxxxxxxxxxx
                                                          ld1sh.  */
-                                                      return 1559;
+                                                      return 1581;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9905,7 +13579,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x01001x11000xxxx101xxxxxxxxxxxxx
                                                          ld1sb.  */
                                                          10987654321098765432109876543210
                                                          x01001x11000xxxx101xxxxxxxxxxxxx
                                                          ld1sb.  */
-                                                      return 1546;
+                                                      return 1568;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -9916,7 +13590,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x01001x10100xxxx101xxxxxxxxxxxxx
                                                          ld1w.  */
                                                          10987654321098765432109876543210
                                                          x01001x10100xxxx101xxxxxxxxxxxxx
                                                          ld1w.  */
-                                                      return 1578;
+                                                      return 1600;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9924,7 +13598,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x01001x11100xxxx101xxxxxxxxxxxxx
                                                          ld1sb.  */
                                                          10987654321098765432109876543210
                                                          x01001x11100xxxx101xxxxxxxxxxxxx
                                                          ld1sb.  */
-                                                      return 1548;
+                                                      return 1570;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9938,7 +13612,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x01001x10001xxxx101xxxxxxxxxxxxx
                                                          ldnf1sh.  */
                                                          10987654321098765432109876543210
                                                          x01001x10001xxxx101xxxxxxxxxxxxx
                                                          ldnf1sh.  */
-                                                      return 1692;
+                                                      return 1714;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9946,7 +13620,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x01001x11001xxxx101xxxxxxxxxxxxx
                                                          ldnf1sb.  */
                                                          10987654321098765432109876543210
                                                          x01001x11001xxxx101xxxxxxxxxxxxx
                                                          ldnf1sb.  */
-                                                      return 1689;
+                                                      return 1711;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -9957,7 +13631,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x01001x10101xxxx101xxxxxxxxxxxxx
                                                          ldnf1w.  */
                                                          10987654321098765432109876543210
                                                          x01001x10101xxxx101xxxxxxxxxxxxx
                                                          ldnf1w.  */
-                                                      return 1695;
+                                                      return 1717;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9965,7 +13639,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x01001x11101xxxx101xxxxxxxxxxxxx
                                                          ldnf1sb.  */
                                                          10987654321098765432109876543210
                                                          x01001x11101xxxx101xxxxxxxxxxxxx
                                                          ldnf1sb.  */
-                                                      return 1691;
+                                                      return 1713;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9985,7 +13659,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          001001x1x000xxxx11xxxxxxxxx0xxxx
                                                          brkpa.  */
                                                          10987654321098765432109876543210
                                                          001001x1x000xxxx11xxxxxxxxx0xxxx
                                                          brkpa.  */
-                                                      return 1286;
+                                                      return 1308;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -9993,7 +13667,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          001001x1x100xxxx11xxxxxxxxx0xxxx
                                                          brkpas.  */
                                                          10987654321098765432109876543210
                                                          001001x1x100xxxx11xxxxxxxxx0xxxx
                                                          brkpas.  */
-                                                      return 1287;
+                                                      return 1309;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -10006,7 +13680,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1xx010xx011xxxxxxxxx0xxxx
                                                              ptest.  */
                                                              10987654321098765432109876543210
                                                              001001x1xx010xx011xxxxxxxxx0xxxx
                                                              ptest.  */
-                                                          return 1772;
+                                                          return 1794;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -10020,7 +13694,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          001001x1xx011xx01100x0xxxxx0xxxx
                                                                          pfirst.  */
                                                                          10987654321098765432109876543210
                                                                          001001x1xx011xx01100x0xxxxx0xxxx
                                                                          pfirst.  */
-                                                                      return 1742;
+                                                                      return 1764;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -10028,7 +13702,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          001001x1xx011xx01110x0xxxxx0xxxx
                                                                          ptrue.  */
                                                                          10987654321098765432109876543210
                                                                          001001x1xx011xx01110x0xxxxx0xxxx
                                                                          ptrue.  */
-                                                                      return 1773;
+                                                                      return 1795;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -10039,7 +13713,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          001001x1x0011xx011x1x0xxxxx0xxxx
                                                                          rdffr.  */
                                                                          10987654321098765432109876543210
                                                                          001001x1x0011xx011x1x0xxxxx0xxxx
                                                                          rdffr.  */
-                                                                      return 1779;
+                                                                      return 1801;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -10047,7 +13721,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          001001x1x1011xx011x1x0xxxxx0xxxx
                                                                          rdffrs.  */
                                                                          10987654321098765432109876543210
                                                                          001001x1x1011xx011x1x0xxxxx0xxxx
                                                                          rdffrs.  */
-                                                                      return 1780;
+                                                                      return 1802;
                                                                     }
                                                                 }
                                                             }
                                                                     }
                                                                 }
                                                             }
@@ -10057,7 +13731,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx011xx011xxx1xxxxx0xxxx
                                                                  pfalse.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx011xx011xxx1xxxxx0xxxx
                                                                  pfalse.  */
-                                                              return 1741;
+                                                              return 1763;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -10071,7 +13745,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx01xxx111x0x0xxxxx0xxxx
                                                                  ptrues.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx01xxx111x0x0xxxxx0xxxx
                                                                  ptrues.  */
-                                                              return 1774;
+                                                              return 1796;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -10079,7 +13753,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx01xxx111x1x0xxxxx0xxxx
                                                                  rdffr.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx01xxx111x1x0xxxxx0xxxx
                                                                  rdffr.  */
-                                                              return 1778;
+                                                              return 1800;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -10088,7 +13762,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1xx01xxx111xxx1xxxxx0xxxx
                                                              pnext.  */
                                                              10987654321098765432109876543210
                                                              001001x1xx01xxx111xxx1xxxxx0xxxx
                                                              pnext.  */
-                                                          return 1743;
+                                                          return 1765;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -10101,7 +13775,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      001001x1x00xxxxx11xxxxxxxxx1xxxx
                                                      brkpb.  */
                                                      10987654321098765432109876543210
                                                      001001x1x00xxxxx11xxxxxxxxx1xxxx
                                                      brkpb.  */
-                                                  return 1288;
+                                                  return 1310;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -10109,7 +13783,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      001001x1x10xxxxx11xxxxxxxxx1xxxx
                                                      brkpbs.  */
                                                      10987654321098765432109876543210
                                                      001001x1x10xxxxx11xxxxxxxxx1xxxx
                                                      brkpbs.  */
-                                                  return 1289;
+                                                  return 1311;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -10125,7 +13799,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1000xxxxx110xxxxxxxxxxxxx
                                                          ldnt1w.  */
                                                          10987654321098765432109876543210
                                                          101001x1000xxxxx110xxxxxxxxxxxxx
                                                          ldnt1w.  */
-                                                      return 1703;
+                                                      return 1725;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -10133,7 +13807,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1100xxxxx110xxxxxxxxxxxxx
                                                          ldnt1d.  */
                                                          10987654321098765432109876543210
                                                          101001x1100xxxxx110xxxxxxxxxxxxx
                                                          ldnt1d.  */
-                                                      return 1699;
+                                                      return 1721;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -10144,7 +13818,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1010xxxxx110xxxxxxxxxxxxx
                                                          ld3w.  */
                                                          10987654321098765432109876543210
                                                          101001x1010xxxxx110xxxxxxxxxxxxx
                                                          ld3w.  */
-                                                      return 1595;
+                                                      return 1617;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -10152,7 +13826,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1110xxxxx110xxxxxxxxxxxxx
                                                          ld3d.  */
                                                          10987654321098765432109876543210
                                                          101001x1110xxxxx110xxxxxxxxxxxxx
                                                          ld3d.  */
-                                                      return 1591;
+                                                      return 1613;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -10166,7 +13840,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1000xxxxx111xxxxxxxxxxxxx
                                                          ldnt1w.  */
                                                          10987654321098765432109876543210
                                                          101001x1000xxxxx111xxxxxxxxxxxxx
                                                          ldnt1w.  */
-                                                      return 1704;
+                                                      return 1726;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -10174,7 +13848,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1100xxxxx111xxxxxxxxxxxxx
                                                          ldnt1d.  */
                                                          10987654321098765432109876543210
                                                          101001x1100xxxxx111xxxxxxxxxxxxx
                                                          ldnt1d.  */
-                                                      return 1700;
+                                                      return 1722;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -10185,7 +13859,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1010xxxxx111xxxxxxxxxxxxx
                                                          ld3w.  */
                                                          10987654321098765432109876543210
                                                          101001x1010xxxxx111xxxxxxxxxxxxx
                                                          ld3w.  */
-                                                      return 1596;
+                                                      return 1618;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -10193,7 +13867,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1110xxxxx111xxxxxxxxxxxxx
                                                          ld3d.  */
                                                          10987654321098765432109876543210
                                                          101001x1110xxxxx111xxxxxxxxxxxxx
                                                          ld3d.  */
-                                                      return 1592;
+                                                      return 1614;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -10222,7 +13896,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000000100xxxxxxxxxxxxx
                                                                      fadd.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000000100xxxxxxxxxxxxx
                                                                      fadd.  */
-                                                                  return 1362;
+                                                                  return 1384;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10230,7 +13904,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000100100xxxxxxxxxxxxx
                                                                      fmaxnm.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000100100xxxxxxxxxxxxx
                                                                      fmaxnm.  */
-                                                                  return 1409;
+                                                                  return 1431;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -10241,7 +13915,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000010100xxxxxxxxxxxxx
                                                                      fmul.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000010100xxxxxxxxxxxxx
                                                                      fmul.  */
-                                                                  return 1429;
+                                                                  return 1451;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10249,7 +13923,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000110100xxxxxxxxxxxxx
                                                                      fmax.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000110100xxxxxxxxxxxxx
                                                                      fmax.  */
-                                                                  return 1407;
+                                                                  return 1429;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -10263,7 +13937,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000001100xxxxxxxxxxxxx
                                                                      fsub.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000001100xxxxxxxxxxxxx
                                                                      fsub.  */
-                                                                  return 1455;
+                                                                  return 1477;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10271,7 +13945,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000101100xxxxxxxxxxxxx
                                                                      fminnm.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000101100xxxxxxxxxxxxx
                                                                      fminnm.  */
-                                                                  return 1415;
+                                                                  return 1437;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -10282,7 +13956,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000011100xxxxxxxxxxxxx
                                                                      fsubr.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000011100xxxxxxxxxxxxx
                                                                      fsubr.  */
-                                                                  return 1457;
+                                                                  return 1479;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10290,7 +13964,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000111100xxxxxxxxxxxxx
                                                                      fmin.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000111100xxxxxxxxxxxxx
                                                                      fmin.  */
-                                                                  return 1413;
+                                                                  return 1435;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -10301,7 +13975,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          011001x1xx010xxx100xxxxxxxxxxxxx
                                                          ftmad.  */
                                                          10987654321098765432109876543210
                                                          011001x1xx010xxx100xxxxxxxxxxxxx
                                                          ftmad.  */
-                                                      return 1459;
+                                                      return 1481;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -10318,7 +13992,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001000100xxxxxxxxxxxxx
                                                                      fabd.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001000100xxxxxxxxxxxxx
                                                                      fabd.  */
-                                                                  return 1357;
+                                                                  return 1379;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10326,7 +14000,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011000100xxxxxxxxxxxxx
                                                                      fadd.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011000100xxxxxxxxxxxxx
                                                                      fadd.  */
-                                                                  return 1363;
+                                                                  return 1385;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -10337,7 +14011,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001100100xxxxxxxxxxxxx
                                                                      fdivr.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001100100xxxxxxxxxxxxx
                                                                      fdivr.  */
-                                                                  return 1403;
+                                                                  return 1425;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10345,7 +14019,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011100100xxxxxxxxxxxxx
                                                                      fmaxnm.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011100100xxxxxxxxxxxxx
                                                                      fmaxnm.  */
-                                                                  return 1410;
+                                                                  return 1432;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -10359,7 +14033,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001010100xxxxxxxxxxxxx
                                                                      fmulx.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001010100xxxxxxxxxxxxx
                                                                      fmulx.  */
-                                                                  return 1434;
+                                                                  return 1456;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10367,7 +14041,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011010100xxxxxxxxxxxxx
                                                                      fmul.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011010100xxxxxxxxxxxxx
                                                                      fmul.  */
-                                                                  return 1430;
+                                                                  return 1452;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -10376,7 +14050,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  011001x1xx0x1110100xxxxxxxxxxxxx
                                                                  fmax.  */
                                                                  10987654321098765432109876543210
                                                                  011001x1xx0x1110100xxxxxxxxxxxxx
                                                                  fmax.  */
-                                                              return 1408;
+                                                              return 1430;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -10392,7 +14066,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001001100xxxxxxxxxxxxx
                                                                      fscale.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001001100xxxxxxxxxxxxx
                                                                      fscale.  */
-                                                                  return 1452;
+                                                                  return 1474;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10400,7 +14074,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011001100xxxxxxxxxxxxx
                                                                      fsub.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011001100xxxxxxxxxxxxx
                                                                      fsub.  */
-                                                                  return 1456;
+                                                                  return 1478;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -10411,7 +14085,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001101100xxxxxxxxxxxxx
                                                                      fdiv.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001101100xxxxxxxxxxxxx
                                                                      fdiv.  */
-                                                                  return 1402;
+                                                                  return 1424;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10419,7 +14093,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011101100xxxxxxxxxxxxx
                                                                      fminnm.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011101100xxxxxxxxxxxxx
                                                                      fminnm.  */
-                                                                  return 1416;
+                                                                  return 1438;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -10431,7 +14105,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  011001x1xx0x1011100xxxxxxxxxxxxx
                                                                  fsubr.  */
                                                                  10987654321098765432109876543210
                                                                  011001x1xx0x1011100xxxxxxxxxxxxx
                                                                  fsubr.  */
-                                                              return 1458;
+                                                              return 1480;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -10439,7 +14113,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  011001x1xx0x1111100xxxxxxxxxxxxx
                                                                  fmin.  */
                                                                  10987654321098765432109876543210
                                                                  011001x1xx0x1111100xxxxxxxxxxxxx
                                                                  fmin.  */
-                                                              return 1414;
+                                                              return 1436;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -10453,7 +14127,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      011001x1xx0xxxxx110xxxxxxxx0xxxx
                                                      fcmuo.  */
                                                      10987654321098765432109876543210
                                                      011001x1xx0xxxxx110xxxxxxxx0xxxx
                                                      fcmuo.  */
-                                                  return 1380;
+                                                  return 1402;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -10461,7 +14135,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      011001x1xx0xxxxx110xxxxxxxx1xxxx
                                                      facge.  */
                                                      10987654321098765432109876543210
                                                      011001x1xx0xxxxx110xxxxxxxx1xxxx
                                                      facge.  */
-                                                  return 1359;
+                                                  return 1381;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -10475,7 +14149,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x1000xxxxx1x0xxxxxxxxxxxxx
                                                      st1w.  */
                                                      10987654321098765432109876543210
                                                      111001x1000xxxxx1x0xxxxxxxxxxxxx
                                                      st1w.  */
-                                                  return 1878;
+                                                  return 1900;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -10483,7 +14157,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x1100xxxxx1x0xxxxxxxxxxxxx
                                                      st1d.  */
                                                      10987654321098765432109876543210
                                                      111001x1100xxxxx1x0xxxxxxxxxxxxx
                                                      st1d.  */
-                                                  return 1857;
+                                                  return 1879;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -10492,7 +14166,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  111001x1x10xxxxx1x0xxxxxxxxxxxxx
                                                  st1w.  */
                                                  10987654321098765432109876543210
                                                  111001x1x10xxxxx1x0xxxxxxxxxxxxx
                                                  st1w.  */
-                                              return 1883;
+                                              return 1905;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -10504,11 +14178,11 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               if (((word >> 16) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 16) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 17) & 0x1) == 0)
+                                                  if (((word >> 19) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
+                                                      if (((word >> 17) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 19) & 0x1) == 0)
+                                                          if (((word >> 18) & 0x1) == 0)
                                                             {
                                                               if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                             {
                                                               if (((word >> 20) & 0x1) == 0)
                                                                 {
@@ -10516,7 +14190,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000000101xxxxxxxxxxxxx
                                                                      frintn.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000000101xxxxxxxxxxxxx
                                                                      frintn.  */
-                                                                  return 1446;
+                                                                  return 1468;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10524,43 +14198,10 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx010000101xxxxxxxxxxxxx
                                                                      scvtf.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx010000101xxxxxxxxxxxxx
                                                                      scvtf.  */
-                                                                  return 1792;
+                                                                  return 1814;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
-                                                            {
-                                                              if (((word >> 20) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 22) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         011001x1x0001000101xxxxxxxxxxxxx
-                                                                         fcvt.  */
-                                                                      return 1382;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         011001x1x1001000101xxxxxxxxxxxxx
-                                                                         fcvt.  */
-                                                                      return 1384;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     011001x1xx011000101xxxxxxxxxxxxx
-                                                                     fcvtzs.  */
-                                                                  return 1392;
-                                                                }
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                               if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                             {
                                                               if (((word >> 20) & 0x1) == 0)
                                                                 {
@@ -10568,7 +14209,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000100101xxxxxxxxxxxxx
                                                                      frinta.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000100101xxxxxxxxxxxxx
                                                                      frinta.  */
-                                                                  return 1443;
+                                                                  return 1465;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10578,7 +14219,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1x0010100101xxxxxxxxxxxxx
                                                                          scvtf.  */
                                                                          10987654321098765432109876543210
                                                                          011001x1x0010100101xxxxxxxxxxxxx
                                                                          scvtf.  */
-                                                                      return 1791;
+                                                                      return 1813;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -10588,7 +14229,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x101010100101xxxxxxxxxxxxx
                                                                              scvtf.  */
                                                                              10987654321098765432109876543210
                                                                              011001x101010100101xxxxxxxxxxxxx
                                                                              scvtf.  */
-                                                                          return 1790;
+                                                                          return 1812;
                                                                         }
                                                                       else
                                                                         {
                                                                         }
                                                                       else
                                                                         {
@@ -10596,49 +14237,60 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x111010100101xxxxxxxxxxxxx
                                                                              scvtf.  */
                                                                              10987654321098765432109876543210
                                                                              011001x111010100101xxxxxxxxxxxxx
                                                                              scvtf.  */
-                                                                          return 1794;
+                                                                          return 1816;
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                                         }
                                                                     }
                                                                 }
                                                             }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 18) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000010101xxxxxxxxxxxxx
+                                                                     frintm.  */
+                                                                  return 1467;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx010010101xxxxxxxxxxxxx
+                                                                     scvtf.  */
+                                                                  return 1811;
+                                                                }
+                                                            }
                                                           else
                                                             {
                                                               if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                           else
                                                             {
                                                               if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     011001x1xx001100101xxxxxxxxxxxxx
-                                                                     frecpx.  */
-                                                                  return 1442;
+                                                                     011001x1xx000110101xxxxxxxxxxxxx
+                                                                     frintx.  */
+                                                                  return 1470;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 22) & 0x1) == 0)
+                                                                  if (((word >> 23) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         011001x1x0011100101xxxxxxxxxxxxx
-                                                                         fcvtzs.  */
-                                                                      return 1391;
+                                                                         011001x10x010110101xxxxxxxxxxxxx
+                                                                         scvtf.  */
+                                                                      return 1815;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
-                                                                      if (((word >> 23) & 0x1) == 0)
-                                                                        {
-                                                                          /* 33222222222211111111110000000000
-                                                                             10987654321098765432109876543210
-                                                                             011001x101011100101xxxxxxxxxxxxx
-                                                                             fcvtzs.  */
-                                                                          return 1389;
-                                                                        }
-                                                                      else
-                                                                        {
-                                                                          /* 33222222222211111111110000000000
-                                                                             10987654321098765432109876543210
-                                                                             011001x111011100101xxxxxxxxxxxxx
-                                                                             fcvtzs.  */
-                                                                          return 1393;
-                                                                        }
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         011001x11x010110101xxxxxxxxxxxxx
+                                                                         scvtf.  */
+                                                                      return 1817;
                                                                     }
                                                                 }
                                                             }
                                                                     }
                                                                 }
                                                             }
@@ -10646,96 +14298,151 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
+                                                      if (((word >> 20) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 19) & 0x1) == 0)
+                                                          if (((word >> 17) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 20) & 0x1) == 0)
+                                                              if (((word >> 18) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     011001x1xx000010101xxxxxxxxxxxxx
-                                                                     frintm.  */
-                                                                  return 1445;
+                                                                  if (((word >> 22) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         011001x1x0001000101xxxxxxxxxxxxx
+                                                                         fcvt.  */
+                                                                      return 1404;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         011001x1x1001000101xxxxxxxxxxxxx
+                                                                         fcvt.  */
+                                                                      return 1406;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     011001x1xx010010101xxxxxxxxxxxxx
-                                                                     scvtf.  */
-                                                                  return 1789;
+                                                                     011001x1xx001100101xxxxxxxxxxxxx
+                                                                     frecpx.  */
+                                                                  return 1464;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 20) & 0x1) == 0)
+                                                              if (((word >> 22) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     011001x1xx001010101xxxxxxxxxxxxx
-                                                                     fcvt.  */
-                                                                  return 1386;
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         011001x100001x10101xxxxxxxxxxxxx
+                                                                         fcvtx.  */
+                                                                      return 2074;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         011001x110001x10101xxxxxxxxxxxxx
+                                                                         bfcvt.  */
+                                                                      return 2424;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     011001x1xx011010101xxxxxxxxxxxxx
-                                                                     fcvtzs.  */
-                                                                  return 1388;
+                                                                     011001x1x1001x10101xxxxxxxxxxxxx
+                                                                     fcvt.  */
+                                                                  return 1408;
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 19) & 0x1) == 0)
+                                                          if (((word >> 22) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 20) & 0x1) == 0)
+                                                              if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     011001x1xx000110101xxxxxxxxxxxxx
-                                                                     frintx.  */
-                                                                  return 1448;
+                                                                     011001x100011xx0101xxxxxxxxxxxxx
+                                                                     flogb.  */
+                                                                  return 2076;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x110011xx0101xxxxxxxxxxxxx
+                                                                     fcvtzs.  */
+                                                                  return 1413;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 17) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 18) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         011001x10x010110101xxxxxxxxxxxxx
-                                                                         scvtf.  */
-                                                                      return 1793;
+                                                                         011001x1x1011000101xxxxxxxxxxxxx
+                                                                         fcvtzs.  */
+                                                                      return 1414;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         011001x11x010110101xxxxxxxxxxxxx
-                                                                         scvtf.  */
-                                                                      return 1795;
+                                                                      if (((word >> 23) & 0x1) == 0)
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             011001x101011100101xxxxxxxxxxxxx
+                                                                             fcvtzs.  */
+                                                                          return 1411;
+                                                                        }
+                                                                      else
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             011001x111011100101xxxxxxxxxxxxx
+                                                                             fcvtzs.  */
+                                                                          return 1415;
+                                                                        }
                                                                     }
                                                                 }
                                                                     }
                                                                 }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 23) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     011001x10x0x1110101xxxxxxxxxxxxx
-                                                                     fcvtzs.  */
-                                                                  return 1390;
-                                                                }
                                                               else
                                                                 {
                                                               else
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     011001x11x0x1110101xxxxxxxxxxxxx
-                                                                     fcvtzs.  */
-                                                                  return 1394;
+                                                                  if (((word >> 18) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         011001x1x1011010101xxxxxxxxxxxxx
+                                                                         fcvtzs.  */
+                                                                      return 1410;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      if (((word >> 23) & 0x1) == 0)
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             011001x101011110101xxxxxxxxxxxxx
+                                                                             fcvtzs.  */
+                                                                          return 1412;
+                                                                        }
+                                                                      else
+                                                                        {
+                                                                          /* 33222222222211111111110000000000
+                                                                             10987654321098765432109876543210
+                                                                             011001x111011110101xxxxxxxxxxxxx
+                                                                             fcvtzs.  */
+                                                                          return 1416;
+                                                                        }
+                                                                    }
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -10755,7 +14462,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000001101xxxxxxxxxxxxx
                                                                      frintp.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000001101xxxxxxxxxxxxx
                                                                      frintp.  */
-                                                                  return 1447;
+                                                                  return 1469;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10763,7 +14470,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx010001101xxxxxxxxxxxxx
                                                                      ucvtf.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx010001101xxxxxxxxxxxxx
                                                                      ucvtf.  */
-                                                                  return 1944;
+                                                                  return 1966;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -10776,7 +14483,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1x0001001101xxxxxxxxxxxxx
                                                                          fcvt.  */
                                                                          10987654321098765432109876543210
                                                                          011001x1x0001001101xxxxxxxxxxxxx
                                                                          fcvt.  */
-                                                                      return 1383;
+                                                                      return 1405;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -10784,7 +14491,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1x1001001101xxxxxxxxxxxxx
                                                                          fcvt.  */
                                                                          10987654321098765432109876543210
                                                                          011001x1x1001001101xxxxxxxxxxxxx
                                                                          fcvt.  */
-                                                                      return 1385;
+                                                                      return 1407;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -10793,7 +14500,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011001101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011001101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
-                                                                  return 1399;
+                                                                  return 1421;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -10807,7 +14514,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1x00x0101101xxxxxxxxxxxxx
                                                                      ucvtf.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1x00x0101101xxxxxxxxxxxxx
                                                                      ucvtf.  */
-                                                                  return 1943;
+                                                                  return 1965;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10817,7 +14524,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1010x0101101xxxxxxxxxxxxx
                                                                          ucvtf.  */
                                                                          10987654321098765432109876543210
                                                                          011001x1010x0101101xxxxxxxxxxxxx
                                                                          ucvtf.  */
-                                                                      return 1942;
+                                                                      return 1964;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -10825,7 +14532,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1110x0101101xxxxxxxxxxxxx
                                                                          ucvtf.  */
                                                                          10987654321098765432109876543210
                                                                          011001x1110x0101101xxxxxxxxxxxxx
                                                                          ucvtf.  */
-                                                                      return 1946;
+                                                                      return 1968;
                                                                     }
                                                                 }
                                                             }
                                                                     }
                                                                 }
                                                             }
@@ -10837,7 +14544,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001101101xxxxxxxxxxxxx
                                                                      fsqrt.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001101101xxxxxxxxxxxxx
                                                                      fsqrt.  */
-                                                                  return 1453;
+                                                                  return 1475;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10847,7 +14554,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x1x0011101101xxxxxxxxxxxxx
                                                                          fcvtzu.  */
                                                                          10987654321098765432109876543210
                                                                          011001x1x0011101101xxxxxxxxxxxxx
                                                                          fcvtzu.  */
-                                                                      return 1398;
+                                                                      return 1420;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -10857,7 +14564,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x101011101101xxxxxxxxxxxxx
                                                                              fcvtzu.  */
                                                                              10987654321098765432109876543210
                                                                              011001x101011101101xxxxxxxxxxxxx
                                                                              fcvtzu.  */
-                                                                          return 1396;
+                                                                          return 1418;
                                                                         }
                                                                       else
                                                                         {
                                                                         }
                                                                       else
                                                                         {
@@ -10865,7 +14572,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              011001x111011101101xxxxxxxxxxxxx
                                                                              fcvtzu.  */
                                                                              10987654321098765432109876543210
                                                                              011001x111011101101xxxxxxxxxxxxx
                                                                              fcvtzu.  */
-                                                                          return 1400;
+                                                                          return 1422;
                                                                         }
                                                                     }
                                                                 }
                                                                         }
                                                                     }
                                                                 }
@@ -10884,7 +14591,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000011101xxxxxxxxxxxxx
                                                                      frintz.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000011101xxxxxxxxxxxxx
                                                                      frintz.  */
-                                                                  return 1449;
+                                                                  return 1471;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10892,7 +14599,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx010011101xxxxxxxxxxxxx
                                                                      ucvtf.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx010011101xxxxxxxxxxxxx
                                                                      ucvtf.  */
-                                                                  return 1941;
+                                                                  return 1963;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -10903,7 +14610,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001011101xxxxxxxxxxxxx
                                                                      fcvt.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx001011101xxxxxxxxxxxxx
                                                                      fcvt.  */
-                                                                  return 1387;
+                                                                  return 1409;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10911,7 +14618,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011011101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx011011101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
-                                                                  return 1395;
+                                                                  return 1417;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -10925,7 +14632,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000111101xxxxxxxxxxxxx
                                                                      frinti.  */
                                                                      10987654321098765432109876543210
                                                                      011001x1xx000111101xxxxxxxxxxxxx
                                                                      frinti.  */
-                                                                  return 1444;
+                                                                  return 1466;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10935,7 +14642,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x10x010111101xxxxxxxxxxxxx
                                                                          ucvtf.  */
                                                                          10987654321098765432109876543210
                                                                          011001x10x010111101xxxxxxxxxxxxx
                                                                          ucvtf.  */
-                                                                      return 1945;
+                                                                      return 1967;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
@@ -10943,7 +14650,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          011001x11x010111101xxxxxxxxxxxxx
                                                                          ucvtf.  */
                                                                          10987654321098765432109876543210
                                                                          011001x11x010111101xxxxxxxxxxxxx
                                                                          ucvtf.  */
-                                                                      return 1947;
+                                                                      return 1969;
                                                                     }
                                                                 }
                                                             }
                                                                     }
                                                                 }
                                                             }
@@ -10955,7 +14662,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x10x0x1111101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
                                                                      10987654321098765432109876543210
                                                                      011001x10x0x1111101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
-                                                                  return 1397;
+                                                                  return 1419;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -10963,7 +14670,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      011001x11x0x1111101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
                                                                      10987654321098765432109876543210
                                                                      011001x11x0x1111101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
-                                                                  return 1401;
+                                                                  return 1423;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -10980,7 +14687,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1000xxxxx101xxxxxxxxxxxxx
                                                          st1w.  */
                                                          10987654321098765432109876543210
                                                          111001x1000xxxxx101xxxxxxxxxxxxx
                                                          st1w.  */
-                                                      return 1879;
+                                                      return 1901;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -10988,7 +14695,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1100xxxxx101xxxxxxxxxxxxx
                                                          st1d.  */
                                                          10987654321098765432109876543210
                                                          111001x1100xxxxx101xxxxxxxxxxxxx
                                                          st1d.  */
-                                                      return 1858;
+                                                      return 1880;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -10999,7 +14706,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1010xxxxx101xxxxxxxxxxxxx
                                                          st1w.  */
                                                          10987654321098765432109876543210
                                                          111001x1010xxxxx101xxxxxxxxxxxxx
                                                          st1w.  */
-                                                      return 1886;
+                                                      return 1908;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -11007,7 +14714,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1110xxxxx101xxxxxxxxxxxxx
                                                          st1d.  */
                                                          10987654321098765432109876543210
                                                          111001x1110xxxxx101xxxxxxxxxxxxx
                                                          st1d.  */
-                                                      return 1862;
+                                                      return 1884;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -11020,7 +14727,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  011001x1xx0xxxxx111xxxxxxxxxxxxx
                                                  facgt.  */
                                                  10987654321098765432109876543210
                                                  011001x1xx0xxxxx111xxxxxxxxxxxxx
                                                  facgt.  */
-                                              return 1360;
+                                              return 1382;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -11030,7 +14737,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x1xx00xxxx111xxxxxxxxxxxxx
                                                      st1w.  */
                                                      10987654321098765432109876543210
                                                      111001x1xx00xxxx111xxxxxxxxxxxxx
                                                      st1w.  */
-                                                  return 1887;
+                                                  return 1909;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -11042,7 +14749,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              111001x10001xxxx111xxxxxxxxxxxxx
                                                              stnt1w.  */
                                                              10987654321098765432109876543210
                                                              111001x10001xxxx111xxxxxxxxxxxxx
                                                              stnt1w.  */
-                                                          return 1921;
+                                                          return 1943;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -11050,7 +14757,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              111001x11001xxxx111xxxxxxxxxxxxx
                                                              stnt1d.  */
                                                              10987654321098765432109876543210
                                                              111001x11001xxxx111xxxxxxxxxxxxx
                                                              stnt1d.  */
-                                                          return 1917;
+                                                          return 1939;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -11061,7 +14768,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              111001x10101xxxx111xxxxxxxxxxxxx
                                                              st3w.  */
                                                              10987654321098765432109876543210
                                                              111001x10101xxxx111xxxxxxxxxxxxx
                                                              st3w.  */
-                                                          return 1905;
+                                                          return 1927;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -11069,7 +14776,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              111001x11101xxxx111xxxxxxxxxxxxx
                                                              st3d.  */
                                                              10987654321098765432109876543210
                                                              111001x11101xxxx111xxxxxxxxxxxxx
                                                              st3d.  */
-                                                          return 1901;
+                                                          return 1923;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -11100,7 +14807,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10000010xxxxxxxxxxxxxx
                                                                  cntp.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10000010xxxxxxxxxxxxxx
                                                                  cntp.  */
-                                                              return 1329;
+                                                              return 1351;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -11114,7 +14821,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              001001x1xx10100010x000xxxxxxxxxx
                                                                              sqincp.  */
                                                                              10987654321098765432109876543210
                                                                              001001x1xx10100010x000xxxxxxxxxx
                                                                              sqincp.  */
-                                                                          return 1836;
+                                                                          return 1858;
                                                                         }
                                                                       else
                                                                         {
                                                                         }
                                                                       else
                                                                         {
@@ -11122,7 +14829,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                              10987654321098765432109876543210
                                                                              001001x1xx10100010x100xxxxxxxxxx
                                                                              wrffr.  */
                                                                              10987654321098765432109876543210
                                                                              001001x1xx10100010x100xxxxxxxxxx
                                                                              wrffr.  */
-                                                                          return 2009;
+                                                                          return 2031;
                                                                         }
                                                                     }
                                                                   else
                                                                         }
                                                                     }
                                                                   else
@@ -11131,7 +14838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                          10987654321098765432109876543210
                                                                          001001x1xx10100010xx10xxxxxxxxxx
                                                                          sqincp.  */
                                                                          10987654321098765432109876543210
                                                                          001001x1xx10100010xx10xxxxxxxxxx
                                                                          sqincp.  */
-                                                                      return 1838;
+                                                                      return 1860;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -11140,7 +14847,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10100010xxx1xxxxxxxxxx
                                                                      sqincp.  */
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10100010xxx1xxxxxxxxxx
                                                                      sqincp.  */
-                                                                  return 1837;
+                                                                  return 1859;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -11154,7 +14861,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10x10010x00xxxxxxxxxxx
                                                                      incp.  */
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10x10010x00xxxxxxxxxxx
                                                                      incp.  */
-                                                                  return 1467;
+                                                                  return 1489;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -11162,7 +14869,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10x10010x10xxxxxxxxxxx
                                                                      setffr.  */
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10x10010x10xxxxxxxxxxx
                                                                      setffr.  */
-                                                                  return 1803;
+                                                                  return 1825;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -11171,7 +14878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10x10010xx1xxxxxxxxxxx
                                                                  incp.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10x10010xx1xxxxxxxxxxx
                                                                  incp.  */
-                                                              return 1468;
+                                                              return 1490;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -11185,7 +14892,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10xx1010xx00xxxxxxxxxx
                                                                  sqdecp.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10xx1010xx00xxxxxxxxxx
                                                                  sqdecp.  */
-                                                              return 1822;
+                                                              return 1844;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -11193,7 +14900,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10xx1010xx10xxxxxxxxxx
                                                                  sqdecp.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10xx1010xx10xxxxxxxxxx
                                                                  sqdecp.  */
-                                                              return 1824;
+                                                              return 1846;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -11202,7 +14909,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1xx10xx1010xxx1xxxxxxxxxx
                                                              sqdecp.  */
                                                              10987654321098765432109876543210
                                                              001001x1xx10xx1010xxx1xxxxxxxxxx
                                                              sqdecp.  */
-                                                          return 1823;
+                                                          return 1845;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -11220,7 +14927,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10x00110xx00xxxxxxxxxx
                                                                      uqincp.  */
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10x00110xx00xxxxxxxxxx
                                                                      uqincp.  */
-                                                                  return 1984;
+                                                                  return 2006;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -11228,7 +14935,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10x10110xx00xxxxxxxxxx
                                                                      decp.  */
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10x10110xx00xxxxxxxxxx
                                                                      decp.  */
-                                                                  return 1342;
+                                                                  return 1364;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -11237,7 +14944,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10xx1110xx00xxxxxxxxxx
                                                                  uqdecp.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10xx1110xx00xxxxxxxxxx
                                                                  uqdecp.  */
-                                                              return 1970;
+                                                              return 1992;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -11250,7 +14957,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10x00110xx10xxxxxxxxxx
                                                                      uqincp.  */
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10x00110xx10xxxxxxxxxx
                                                                      uqincp.  */
-                                                                  return 1985;
+                                                                  return 2007;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -11258,7 +14965,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10x10110xx10xxxxxxxxxx
                                                                      decp.  */
                                                                      10987654321098765432109876543210
                                                                      001001x1xx10x10110xx10xxxxxxxxxx
                                                                      decp.  */
-                                                                  return 1343;
+                                                                  return 1365;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -11267,7 +14974,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10xx1110xx10xxxxxxxxxx
                                                                  uqdecp.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10xx1110xx10xxxxxxxxxx
                                                                  uqdecp.  */
-                                                              return 1971;
+                                                              return 1993;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -11279,7 +14986,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1xx10xx0110xxx1xxxxxxxxxx
                                                              uqincp.  */
                                                              10987654321098765432109876543210
                                                              001001x1xx10xx0110xxx1xxxxxxxxxx
                                                              uqincp.  */
-                                                          return 1986;
+                                                          return 2008;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -11287,7 +14994,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1xx10xx1110xxx1xxxxxxxxxx
                                                              uqdecp.  */
                                                              10987654321098765432109876543210
                                                              001001x1xx10xx1110xxx1xxxxxxxxxx
                                                              uqdecp.  */
-                                                          return 1972;
+                                                          return 1994;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -11302,7 +15009,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x10010xxxx10xxxxxxxxxxxxxx
                                                          ld1sh.  */
                                                          10987654321098765432109876543210
                                                          101001x10010xxxx10xxxxxxxxxxxxxx
                                                          ld1sh.  */
-                                                      return 1560;
+                                                      return 1582;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -11310,7 +15017,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x11010xxxx10xxxxxxxxxxxxxx
                                                          ld1sb.  */
                                                          10987654321098765432109876543210
                                                          101001x11010xxxx10xxxxxxxxxxxxxx
                                                          ld1sb.  */
-                                                      return 1547;
+                                                      return 1569;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -11321,7 +15028,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x10110xxxx10xxxxxxxxxxxxxx
                                                          ld1w.  */
                                                          10987654321098765432109876543210
                                                          101001x10110xxxx10xxxxxxxxxxxxxx
                                                          ld1w.  */
-                                                      return 1579;
+                                                      return 1601;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -11329,7 +15036,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x11110xxxx10xxxxxxxxxxxxxx
                                                          ld1d.  */
                                                          10987654321098765432109876543210
                                                          101001x11110xxxx10xxxxxxxxxxxxxx
                                                          ld1d.  */
-                                                      return 1499;
+                                                      return 1521;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -11344,7 +15051,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x10011xxxx10xxxxxxxxxxxxxx
                                                      ldnf1sh.  */
                                                      10987654321098765432109876543210
                                                      x01001x10011xxxx10xxxxxxxxxxxxxx
                                                      ldnf1sh.  */
-                                                  return 1693;
+                                                  return 1715;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -11352,7 +15059,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x11011xxxx10xxxxxxxxxxxxxx
                                                      ldnf1sb.  */
                                                      10987654321098765432109876543210
                                                      x01001x11011xxxx10xxxxxxxxxxxxxx
                                                      ldnf1sb.  */
-                                                  return 1690;
+                                                  return 1712;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -11363,7 +15070,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x10111xxxx10xxxxxxxxxxxxxx
                                                      ldnf1w.  */
                                                      10987654321098765432109876543210
                                                      x01001x10111xxxx10xxxxxxxxxxxxxx
                                                      ldnf1w.  */
-                                                  return 1696;
+                                                  return 1718;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -11371,7 +15078,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x01001x11111xxxx10xxxxxxxxxxxxxx
                                                      ldnf1d.  */
                                                      10987654321098765432109876543210
                                                      x01001x11111xxxx10xxxxxxxxxxxxxx
                                                      ldnf1d.  */
-                                                  return 1685;
+                                                  return 1707;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -11394,7 +15101,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10000011xxxxxxxxxxxxxx
                                                                  add.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10000011xxxxxxxxxxxxxx
                                                                  add.  */
-                                                              return 1256;
+                                                              return 1278;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -11402,7 +15109,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx11000011xxxxxxxxxxxxxx
                                                                  mul.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx11000011xxxxxxxxxxxxxx
                                                                  mul.  */
-                                                              return 1725;
+                                                              return 1747;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -11413,7 +15120,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10100011xxxxxxxxxxxxxx
                                                                  smax.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10100011xxxxxxxxxxxxxx
                                                                  smax.  */
-                                                              return 1804;
+                                                              return 1826;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -11421,7 +15128,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx11100011xxxxxxxxxxxxxx
                                                                  dup.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx11100011xxxxxxxxxxxxxx
                                                                  dup.  */
-                                                              return 1348;
+                                                              return 1370;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -11431,7 +15138,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          001001x1xx1xx10011xxxxxxxxxxxxxx
                                                          sqadd.  */
                                                          10987654321098765432109876543210
                                                          001001x1xx1xx10011xxxxxxxxxxxxxx
                                                          sqadd.  */
-                                                      return 1813;
+                                                      return 1835;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -11442,7 +15149,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          001001x1xx1xx01011xxxxxxxxxxxxxx
                                                          smin.  */
                                                          10987654321098765432109876543210
                                                          001001x1xx1xx01011xxxxxxxxxxxxxx
                                                          smin.  */
-                                                      return 1807;
+                                                      return 1829;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -11450,7 +15157,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          001001x1xx1xx11011xxxxxxxxxxxxxx
                                                          sqsub.  */
                                                          10987654321098765432109876543210
                                                          001001x1xx1xx11011xxxxxxxxxxxxxx
                                                          sqsub.  */
-                                                      return 1843;
+                                                      return 1865;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -11466,7 +15173,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1xx1x000111xxxxxxxxxxxxxx
                                                              sub.  */
                                                              10987654321098765432109876543210
                                                              001001x1xx1x000111xxxxxxxxxxxxxx
                                                              sub.  */
-                                                          return 1925;
+                                                          return 1947;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -11476,7 +15183,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10100111xxxxxxxxxxxxxx
                                                                  umax.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx10100111xxxxxxxxxxxxxx
                                                                  umax.  */
-                                                              return 1953;
+                                                              return 1975;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -11484,7 +15191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  001001x1xx11100111xxxxxxxxxxxxxx
                                                                  fdup.  */
                                                                  10987654321098765432109876543210
                                                                  001001x1xx11100111xxxxxxxxxxxxxx
                                                                  fdup.  */
-                                                              return 1404;
+                                                              return 1426;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -11494,7 +15201,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          001001x1xx1xx10111xxxxxxxxxxxxxx
                                                          uqadd.  */
                                                          10987654321098765432109876543210
                                                          001001x1xx1xx10111xxxxxxxxxxxxxx
                                                          uqadd.  */
-                                                      return 1961;
+                                                      return 1983;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -11507,7 +15214,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1xx1x001111xxxxxxxxxxxxxx
                                                              subr.  */
                                                              10987654321098765432109876543210
                                                              001001x1xx1x001111xxxxxxxxxxxxxx
                                                              subr.  */
-                                                          return 1927;
+                                                          return 1949;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -11515,7 +15222,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              001001x1xx1x101111xxxxxxxxxxxxxx
                                                              umin.  */
                                                              10987654321098765432109876543210
                                                              001001x1xx1x101111xxxxxxxxxxxxxx
                                                              umin.  */
-                                                          return 1956;
+                                                          return 1978;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -11524,7 +15231,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          001001x1xx1xx11111xxxxxxxxxxxxxx
                                                          uqsub.  */
                                                          10987654321098765432109876543210
                                                          001001x1xx1xx11111xxxxxxxxxxxxxx
                                                          uqsub.  */
-                                                      return 1991;
+                                                      return 2013;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -11541,7 +15248,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1001xxxxx110xxxxxxxxxxxxx
                                                          ld2w.  */
                                                          10987654321098765432109876543210
                                                          101001x1001xxxxx110xxxxxxxxxxxxx
                                                          ld2w.  */
-                                                      return 1587;
+                                                      return 1609;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -11549,7 +15256,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1101xxxxx110xxxxxxxxxxxxx
                                                          ld2d.  */
                                                          10987654321098765432109876543210
                                                          101001x1101xxxxx110xxxxxxxxxxxxx
                                                          ld2d.  */
-                                                      return 1583;
+                                                      return 1605;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -11560,7 +15267,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1011xxxxx110xxxxxxxxxxxxx
                                                          ld4w.  */
                                                          10987654321098765432109876543210
                                                          101001x1011xxxxx110xxxxxxxxxxxxx
                                                          ld4w.  */
-                                                      return 1603;
+                                                      return 1625;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -11568,7 +15275,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1111xxxxx110xxxxxxxxxxxxx
                                                          ld4d.  */
                                                          10987654321098765432109876543210
                                                          101001x1111xxxxx110xxxxxxxxxxxxx
                                                          ld4d.  */
-                                                      return 1599;
+                                                      return 1621;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -11582,7 +15289,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1001xxxxx111xxxxxxxxxxxxx
                                                          ld2w.  */
                                                          10987654321098765432109876543210
                                                          101001x1001xxxxx111xxxxxxxxxxxxx
                                                          ld2w.  */
-                                                      return 1588;
+                                                      return 1610;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -11590,7 +15297,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1101xxxxx111xxxxxxxxxxxxx
                                                          ld2d.  */
                                                          10987654321098765432109876543210
                                                          101001x1101xxxxx111xxxxxxxxxxxxx
                                                          ld2d.  */
-                                                      return 1584;
+                                                      return 1606;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -11601,7 +15308,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1011xxxxx111xxxxxxxxxxxxx
                                                          ld4w.  */
                                                          10987654321098765432109876543210
                                                          101001x1011xxxxx111xxxxxxxxxxxxx
                                                          ld4w.  */
-                                                      return 1604;
+                                                      return 1626;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -11609,7 +15316,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          101001x1111xxxxx111xxxxxxxxxxxxx
                                                          ld4d.  */
                                                          10987654321098765432109876543210
                                                          101001x1111xxxxx111xxxxxxxxxxxxx
                                                          ld4d.  */
-                                                      return 1600;
+                                                      return 1622;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -11628,7 +15335,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx100xxxxxxxxxxxxx
                                                  fmad.  */
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx100xxxxxxxxxxxxx
                                                  fmad.  */
-                                              return 1406;
+                                              return 1428;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -11636,7 +15343,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx110xxxxxxxxxxxxx
                                                  fnmad.  */
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx110xxxxxxxxxxxxx
                                                  fnmad.  */
-                                              return 1436;
+                                              return 1458;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -11649,7 +15356,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x1001xxxxx1x0xxxxxxxxxxxxx
                                                      st1w.  */
                                                      10987654321098765432109876543210
                                                      111001x1001xxxxx1x0xxxxxxxxxxxxx
                                                      st1w.  */
-                                                  return 1880;
+                                                  return 1902;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -11657,7 +15364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x1101xxxxx1x0xxxxxxxxxxxxx
                                                      st1d.  */
                                                      10987654321098765432109876543210
                                                      111001x1101xxxxx1x0xxxxxxxxxxxxx
                                                      st1d.  */
-                                                  return 1859;
+                                                  return 1881;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -11666,7 +15373,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  111001x1x11xxxxx1x0xxxxxxxxxxxxx
                                                  st1w.  */
                                                  10987654321098765432109876543210
                                                  111001x1x11xxxxx1x0xxxxxxxxxxxxx
                                                  st1w.  */
-                                              return 1885;
+                                              return 1907;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -11680,7 +15387,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx101xxxxxxxxxxxxx
                                                  fmsb.  */
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx101xxxxxxxxxxxxx
                                                  fmsb.  */
-                                              return 1427;
+                                              return 1449;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -11692,7 +15399,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1001xxxxx101xxxxxxxxxxxxx
                                                          st1w.  */
                                                          10987654321098765432109876543210
                                                          111001x1001xxxxx101xxxxxxxxxxxxx
                                                          st1w.  */
-                                                      return 1881;
+                                                      return 1903;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -11700,7 +15407,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x1101xxxxx101xxxxxxxxxxxxx
                                                          st1d.  */
                                                          10987654321098765432109876543210
                                                          111001x1101xxxxx101xxxxxxxxxxxxx
                                                          st1d.  */
-                                                      return 1860;
+                                                      return 1882;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -11709,7 +15416,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      111001x1x11xxxxx101xxxxxxxxxxxxx
                                                      st1w.  */
                                                      10987654321098765432109876543210
                                                      111001x1x11xxxxx101xxxxxxxxxxxxx
                                                      st1w.  */
-                                                  return 1888;
+                                                  return 1910;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -11721,7 +15428,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx111xxxxxxxxxxxxx
                                                  fnmsb.  */
                                                  10987654321098765432109876543210
                                                  011001x1xx1xxxxx111xxxxxxxxxxxxx
                                                  fnmsb.  */
-                                              return 1439;
+                                              return 1461;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -11733,7 +15440,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x10x10xxxx111xxxxxxxxxxxxx
                                                          st1w.  */
                                                          10987654321098765432109876543210
                                                          111001x10x10xxxx111xxxxxxxxxxxxx
                                                          st1w.  */
-                                                      return 1889;
+                                                      return 1911;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -11741,7 +15448,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          111001x11x10xxxx111xxxxxxxxxxxxx
                                                          st1d.  */
                                                          10987654321098765432109876543210
                                                          111001x11x10xxxx111xxxxxxxxxxxxx
                                                          st1d.  */
-                                                      return 1863;
+                                                      return 1885;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -11754,7 +15461,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              111001x10011xxxx111xxxxxxxxxxxxx
                                                              st2w.  */
                                                              10987654321098765432109876543210
                                                              111001x10011xxxx111xxxxxxxxxxxxx
                                                              st2w.  */
-                                                          return 1897;
+                                                          return 1919;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -11762,7 +15469,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              111001x11011xxxx111xxxxxxxxxxxxx
                                                              st2d.  */
                                                              10987654321098765432109876543210
                                                              111001x11011xxxx111xxxxxxxxxxxxx
                                                              st2d.  */
-                                                          return 1893;
+                                                          return 1915;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -11773,7 +15480,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              111001x10111xxxx111xxxxxxxxxxxxx
                                                              st4w.  */
                                                              10987654321098765432109876543210
                                                              111001x10111xxxx111xxxxxxxxxxxxx
                                                              st4w.  */
-                                                          return 1913;
+                                                          return 1935;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -11781,7 +15488,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              111001x11111xxxx111xxxxxxxxxxxxx
                                                              st4d.  */
                                                              10987654321098765432109876543210
                                                              111001x11111xxxx111xxxxxxxxxxxxx
                                                              st4d.  */
-                                                          return 1909;
+                                                          return 1931;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -11849,11 +15556,22 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     11010100xx1xxxxxxxxxxxxxxxx0xx00
-                                                     brk.  */
-                                                  return 752;
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         11010100x01xxxxxxxxxxxxxxxx0xx00
+                                                         brk.  */
+                                                      return 752;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         11010100x11xxxxxxxxxxxxxxxx0xx00
+                                                         tcancel.  */
+                                                      return 1192;
+                                                    }
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -11872,7 +15590,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      11010100xx1xxxxxxxxxxxxxxxx0xx10
                                                      dcps2.  */
                                                      10987654321098765432109876543210
                                                      11010100xx1xxxxxxxxxxxxxxxx0xx10
                                                      dcps2.  */
-                                                  return 755;
+                                                  return 756;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -11894,7 +15612,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      11010100xx1xxxxxxxxxxxxxxxx0xx01
                                                      dcps1.  */
                                                      10987654321098765432109876543210
                                                      11010100xx1xxxxxxxxxxxxxxxx0xx01
                                                      dcps1.  */
-                                                  return 754;
+                                                  return 755;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -11913,7 +15631,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      11010100xx1xxxxxxxxxxxxxxxx0xx11
                                                      dcps3.  */
                                                      10987654321098765432109876543210
                                                      11010100xx1xxxxxxxxxxxxxxxx0xx11
                                                      dcps3.  */
-                                                  return 756;
+                                                  return 757;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -12068,7 +15786,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      x1010101xx0xxxxxxxxxxxxxxxxxxxxx
                                      xaflag.  */
                                      10987654321098765432109876543210
                                      x1010101xx0xxxxxxxxxxxxxxxxxxxxx
                                      xaflag.  */
-                                  return 810;
+                                  return 811;
                                 }
                               else
                                 {
                                 }
                               else
                                 {
@@ -12097,8 +15815,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                      x1010101xx1xxxxxxxxxxxxxxxxxxxxx
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                      x1010101xx1xxxxxxxxxxxxxxxxxxxxx
-                                     sysl.  */
-                                  return 1207;
+                                     tstart.  */
+                                  return 1189;
                                 }
                               else
                                 {
                                 }
                               else
                                 {
@@ -12141,7 +15859,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                              10987654321098765432109876543210
                              xx110110xxxxxxxxxxxxxxxxxxxxxxxx
                              tbz.  */
                              10987654321098765432109876543210
                              xx110110xxxxxxxxxxxxxxxxxxxxxxxx
                              tbz.  */
-                          return 1217;
+                          return 1239;
                         }
                     }
                   else
                         }
                     }
                   else
@@ -12160,7 +15878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                              10987654321098765432109876543210
                              xx110111xxxxxxxxxxxxxxxxxxxxxxxx
                              tbnz.  */
                              10987654321098765432109876543210
                              xx110111xxxxxxxxxxxxxxxxxxxxxxxx
                              tbnz.  */
-                          return 1218;
+                          return 1240;
                         }
                     }
                 }
                         }
                     }
                 }
@@ -12192,7 +15910,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xx10110000xxxxxxxxxxxxxxxxxxxxxx
                                      stnp.  */
                                      10987654321098765432109876543210
                                      xx10110000xxxxxxxxxxxxxxxxxxxxxx
                                      stnp.  */
-                                  return 960;
+                                  return 973;
                                 }
                             }
                           else
                                 }
                             }
                           else
@@ -12244,7 +15962,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xx10110100xxxxxxxxxxxxxxxxxxxxxx
                                      stp.  */
                                      10987654321098765432109876543210
                                      xx10110100xxxxxxxxxxxxxxxxxxxxxx
                                      stp.  */
-                                  return 964;
+                                  return 977;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -12308,7 +16026,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xx10110x10xxxxxxxxxxxxxxxxxxxxxx
                                  stp.  */
                                  10987654321098765432109876543210
                                  xx10110x10xxxxxxxxxxxxxxxxxxxxxx
                                  stp.  */
-                              return 969;
+                              return 983;
                             }
                         }
                     }
                             }
                         }
                     }
@@ -12332,7 +16050,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xx10110001xxxxxxxxxxxxxxxxxxxxxx
                                      ldnp.  */
                                      10987654321098765432109876543210
                                      xx10110001xxxxxxxxxxxxxxxxxxxxxx
                                      ldnp.  */
-                                  return 961;
+                                  return 974;
                                 }
                             }
                           else
                                 }
                             }
                           else
@@ -12384,7 +16102,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xx10110101xxxxxxxxxxxxxxxxxxxxxx
                                      ldp.  */
                                      10987654321098765432109876543210
                                      xx10110101xxxxxxxxxxxxxxxxxxxxxx
                                      ldp.  */
-                                  return 965;
+                                  return 978;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -12448,7 +16166,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                  10987654321098765432109876543210
                                  xx10110x11xxxxxxxxxxxxxxxxxxxxxx
                                  ldp.  */
                                  10987654321098765432109876543210
                                  xx10110x11xxxxxxxxxxxxxxxxxxxxxx
                                  ldp.  */
-                              return 970;
+                              return 984;
                             }
                         }
                     }
                             }
                         }
                     }
@@ -12463,7 +16181,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                              10987654321098765432109876543210
                              xx011100xxxxxxxxxxxxxxxxxxxxxxxx
                              ldr.  */
                              10987654321098765432109876543210
                              xx011100xxxxxxxxxxxxxxxxxxxxxxxx
                              ldr.  */
-                          return 973;
+                          return 988;
                         }
                       else
                         {
                         }
                       else
                         {
@@ -12477,7 +16195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xx111100x0xxxxxxxxxx00xxxxxxxxxx
                                          stur.  */
                                          10987654321098765432109876543210
                                          xx111100x0xxxxxxxxxx00xxxxxxxxxx
                                          stur.  */
-                                      return 916;
+                                      return 925;
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
@@ -12485,7 +16203,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xx111100x1xxxxxxxxxx00xxxxxxxxxx
                                          ldur.  */
                                          10987654321098765432109876543210
                                          xx111100x1xxxxxxxxxx00xxxxxxxxxx
                                          ldur.  */
-                                      return 917;
+                                      return 926;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -12496,7 +16214,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xx111100x0xxxxxxxxxx10xxxxxxxxxx
                                          str.  */
                                          10987654321098765432109876543210
                                          xx111100x0xxxxxxxxxx10xxxxxxxxxx
                                          str.  */
-                                      return 895;
+                                      return 904;
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
@@ -12504,7 +16222,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          xx111100x1xxxxxxxxxx10xxxxxxxxxx
                                          ldr.  */
                                          10987654321098765432109876543210
                                          xx111100x1xxxxxxxxxx10xxxxxxxxxx
                                          ldr.  */
-                                      return 896;
+                                      return 905;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -12516,7 +16234,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xx111100x0xxxxxxxxxxx1xxxxxxxxxx
                                      str.  */
                                      10987654321098765432109876543210
                                      xx111100x0xxxxxxxxxxx1xxxxxxxxxx
                                      str.  */
-                                  return 872;
+                                  return 873;
                                 }
                               else
                                 {
                                 }
                               else
                                 {
@@ -12524,7 +16242,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                      10987654321098765432109876543210
                                      xx111100x1xxxxxxxxxxx1xxxxxxxxxx
                                      ldr.  */
                                      10987654321098765432109876543210
                                      xx111100x1xxxxxxxxxxx1xxxxxxxxxx
                                      ldr.  */
-                                  return 873;
+                                  return 874;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -12537,7 +16255,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                              10987654321098765432109876543210
                              xxx11101x0xxxxxxxxxxxxxxxxxxxxxx
                              str.  */
                              10987654321098765432109876543210
                              xxx11101x0xxxxxxxxxxxxxxxxxxxxxx
                              str.  */
-                          return 883;
+                          return 892;
                         }
                       else
                         {
                         }
                       else
                         {
@@ -12545,7 +16263,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                              10987654321098765432109876543210
                              xxx11101x1xxxxxxxxxxxxxxxxxxxxxx
                              ldr.  */
                              10987654321098765432109876543210
                              xxx11101x1xxxxxxxxxxxxxxxxxxxxxx
                              ldr.  */
-                          return 884;
+                          return 893;
                         }
                     }
                 }
                         }
                     }
                 }
@@ -12685,11 +16403,22 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     0x001110xx0xxxxxxx1001xxxxxxxxxx
-                                                     fcmeq.  */
-                                                  return 300;
+                                                  if (((word >> 15) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110xx0xxxxx0x1001xxxxxxxxxx
+                                                         fcmeq.  */
+                                                      return 300;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110xx0xxxxx1x1001xxxxxxxxxx
+                                                         smmla.  */
+                                                      return 2415;
+                                                    }
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -12721,7 +16450,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          0x001110xx0xxxxx1x0101xxxxxxxxxx
                                                          sdot.  */
                                                          10987654321098765432109876543210
                                                          0x001110xx0xxxxx1x0101xxxxxxxxxx
                                                          sdot.  */
-                                                      return 2028;
+                                                      return 2341;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -12781,32 +16510,54 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     0x001110xx0xxxxxxx1011xxxxxxxxxx
-                                                     smov.  */
-                                                  return 151;
+                                                  if (((word >> 15) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110xx0xxxxx0x1011xxxxxxxxxx
+                                                         smov.  */
+                                                      return 151;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110xx0xxxxx1x1011xxxxxxxxxx
+                                                         usmmla.  */
+                                                      return 2417;
+                                                    }
                                                 }
                                             }
                                           else
                                             {
                                               if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 }
                                             }
                                           else
                                             {
                                               if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  if (((word >> 15) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         0x001110x00xxxxxxx0111xxxxxxxxxx
-                                                         ins.  */
-                                                      return 154;
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110x00xxxxx0x0111xxxxxxxxxx
+                                                             ins.  */
+                                                          return 154;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110x10xxxxx0x0111xxxxxxxxxx
+                                                             fmulx.  */
+                                                          return 298;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         0x001110x10xxxxxxx0111xxxxxxxxxx
-                                                         fmulx.  */
-                                                      return 298;
+                                                         0x001110xx0xxxxx1x0111xxxxxxxxxx
+                                                         usdot.  */
+                                                      return 2418;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -12853,7 +16604,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x001110000xxxxxxxxxxxxxxxxxxxxx
                                              eor3.  */
                                              10987654321098765432109876543210
                                              1x001110000xxxxxxxxxxxxxxxxxxxxx
                                              eor3.  */
-                                          return 2035;
+                                          return 2348;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -12861,7 +16612,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x001110100xxxxxxxxxxxxxxxxxxxxx
                                              xar.  */
                                              10987654321098765432109876543210
                                              1x001110100xxxxxxxxxxxxxxxxxxxxx
                                              xar.  */
-                                          return 2037;
+                                          return 2350;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -12872,7 +16623,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              1x001110x10xxxxx0xxxxxxxxxxxxxxx
                                              sm3ss1.  */
                                              10987654321098765432109876543210
                                              1x001110x10xxxxx0xxxxxxxxxxxxxxx
                                              sm3ss1.  */
-                                          return 2039;
+                                          return 2352;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -12886,7 +16637,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          1x001110010xxxxx1xxx00xxxxxxxxxx
                                                          sm3tt1a.  */
                                                          10987654321098765432109876543210
                                                          1x001110010xxxxx1xxx00xxxxxxxxxx
                                                          sm3tt1a.  */
-                                                      return 2040;
+                                                      return 2353;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -12894,7 +16645,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          1x001110110xxxxx1xxx00xxxxxxxxxx
                                                          sha512su0.  */
                                                          10987654321098765432109876543210
                                                          1x001110110xxxxx1xxx00xxxxxxxxxx
                                                          sha512su0.  */
-                                                      return 2033;
+                                                      return 2346;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -12903,7 +16654,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      1x001110x10xxxxx1xxx10xxxxxxxxxx
                                                      sm3tt2a.  */
                                                      10987654321098765432109876543210
                                                      1x001110x10xxxxx1xxx10xxxxxxxxxx
                                                      sm3tt2a.  */
-                                                  return 2042;
+                                                  return 2355;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -12916,7 +16667,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          1x001110010xxxxx1xxx01xxxxxxxxxx
                                                          sm3tt1b.  */
                                                          10987654321098765432109876543210
                                                          1x001110010xxxxx1xxx01xxxxxxxxxx
                                                          sm3tt1b.  */
-                                                      return 2041;
+                                                      return 2354;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -12924,7 +16675,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          1x001110110xxxxx1xxx01xxxxxxxxxx
                                                          sm4e.  */
                                                          10987654321098765432109876543210
                                                          1x001110110xxxxx1xxx01xxxxxxxxxx
                                                          sm4e.  */
-                                                      return 2046;
+                                                      return 2359;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -12933,7 +16684,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      1x001110x10xxxxx1xxx11xxxxxxxxxx
                                                      sm3tt2b.  */
                                                      10987654321098765432109876543210
                                                      1x001110x10xxxxx1xxx11xxxxxxxxxx
                                                      sm3tt2b.  */
-                                                  return 2043;
+                                                  return 2356;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -13114,7 +16865,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx101110xx0xxxxx100101xxxxxxxxxx
                                                          udot.  */
                                                          10987654321098765432109876543210
                                                          xx101110xx0xxxxx100101xxxxxxxxxx
                                                          udot.  */
-                                                      return 2027;
+                                                      return 2340;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -13137,11 +16888,66 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xx101110xx0xxxxx1x1xx1xxxxxxxxxx
-                                             fcadd.  */
-                                          return 373;
+                                          if (((word >> 11) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx101110xx0xxxxx101x01xxxxxxxxxx
+                                                     ummla.  */
+                                                  return 2416;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx101110xx0xxxxx111x01xxxxxxxxxx
+                                                     fcadd.  */
+                                                  return 373;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 12) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx101110xx0xxxxx1x1011xxxxxxxxxx
+                                                     bfmmla.  */
+                                                  return 2432;
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx1011100x0xxxxx1x1111xxxxxxxxxx
+                                                         bfdot.  */
+                                                      return 2430;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x01011101x0xxxxx1x1111xxxxxxxxxx
+                                                             bfmlalb.  */
+                                                          return 2437;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x11011101x0xxxxx1x1111xxxxxxxxxx
+                                                             bfmlalt.  */
+                                                          return 2436;
+                                                        }
+                                                    }
+                                                }
+                                            }
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -13161,7 +16967,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x0011110xx0xxx00xxxxxxxxxxxxxxxx
                                              fcvtzs.  */
                                              10987654321098765432109876543210
                                              x0011110xx0xxx00xxxxxxxxxxxxxxxx
                                              fcvtzs.  */
-                                          return 763;
+                                          return 764;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -13169,7 +16975,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x0011110xx0xxx10xxxxxxxxxxxxxxxx
                                              scvtf.  */
                                              10987654321098765432109876543210
                                              x0011110xx0xxx10xxxxxxxxxxxxxxxx
                                              scvtf.  */
-                                          return 759;
+                                          return 760;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -13180,7 +16986,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x0011110xx0xxx01xxxxxxxxxxxxxxxx
                                              fcvtzu.  */
                                              10987654321098765432109876543210
                                              x0011110xx0xxx01xxxxxxxxxxxxxxxx
                                              fcvtzu.  */
-                                          return 765;
+                                          return 766;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -13188,7 +16994,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x0011110xx0xxx11xxxxxxxxxxxxxxxx
                                              ucvtf.  */
                                              10987654321098765432109876543210
                                              x0011110xx0xxx11xxxxxxxxxxxxxxxx
                                              ucvtf.  */
-                                          return 761;
+                                          return 762;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -13694,21 +17500,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 30) & 0x1) == 0)
+                                                              if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     00001110xx1xxxx1011010xxxxxxxxxx
-                                                                     fcvtn.  */
-                                                                  return 178;
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000011100x1xxxx1011010xxxxxxxxxx
+                                                                         fcvtn.  */
+                                                                      return 178;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         010011100x1xxxx1011010xxxxxxxxxx
+                                                                         fcvtn2.  */
+                                                                      return 179;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     01001110xx1xxxx1011010xxxxxxxxxx
-                                                                     fcvtn2.  */
-                                                                  return 179;
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000011101x1xxxx1011010xxxxxxxxxx
+                                                                         bfcvtn.  */
+                                                                      return 2433;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         010011101x1xxxx1011010xxxxxxxxxx
+                                                                         bfcvtn2.  */
+                                                                      return 2434;
+                                                                    }
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -14025,7 +17853,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          1x001110xx1xxxxx0xxxxxxxxxxxxxxx
                                          bcax.  */
                                          10987654321098765432109876543210
                                          1x001110xx1xxxxx0xxxxxxxxxxxxxxx
                                          bcax.  */
-                                      return 2038;
+                                      return 2351;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -14636,7 +18464,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  11001110xx1xxxxx100000xxxxxxxxxx
                                                                  sha512h.  */
                                                                  10987654321098765432109876543210
                                                                  11001110xx1xxxxx100000xxxxxxxxxx
                                                                  sha512h.  */
-                                                              return 2031;
+                                                              return 2344;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -14688,7 +18516,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  11001110xx1xxxxx110000xxxxxxxxxx
                                                                  sm3partw1.  */
                                                                  10987654321098765432109876543210
                                                                  11001110xx1xxxxx110000xxxxxxxxxx
                                                                  sm3partw1.  */
-                                                              return 2044;
+                                                              return 2357;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -14931,7 +18759,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              1x001110xx1xxxxx100010xxxxxxxxxx
                                                              sha512su1.  */
                                                              10987654321098765432109876543210
                                                              1x001110xx1xxxxx100010xxxxxxxxxx
                                                              sha512su1.  */
-                                                          return 2034;
+                                                          return 2347;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -15007,7 +18835,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x0011100x1xxxxx110010xxxxxxxxxx
                                                                  sm4ekey.  */
                                                                  10987654321098765432109876543210
                                                                  1x0011100x1xxxxx110010xxxxxxxxxx
                                                                  sm4ekey.  */
-                                                              return 2047;
+                                                              return 2360;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -15833,7 +19661,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              1x001110xx1xxxxx100001xxxxxxxxxx
                                                              sha512h2.  */
                                                              10987654321098765432109876543210
                                                              1x001110xx1xxxxx100001xxxxxxxxxx
                                                              sha512h2.  */
-                                                          return 2032;
+                                                          return 2345;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -15865,7 +19693,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  1x0011100x1xxxxx110001xxxxxxxxxx
                                                                  sm3partw2.  */
                                                                  10987654321098765432109876543210
                                                                  1x0011100x1xxxxx110001xxxxxxxxxx
                                                                  sm3partw2.  */
-                                                              return 2045;
+                                                              return 2358;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -16105,7 +19933,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              1x001110xx1xxxxx100011xxxxxxxxxx
                                                              rax1.  */
                                                              10987654321098765432109876543210
                                                              1x001110xx1xxxxx100011xxxxxxxxxx
                                                              rax1.  */
-                                                          return 2036;
+                                                          return 2349;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -16137,7 +19965,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x01011100x1xxxxx110011xxxxxxxxxx
                                                                  fmlal2.  */
                                                                  10987654321098765432109876543210
                                                                  x01011100x1xxxxx110011xxxxxxxxxx
                                                                  fmlal2.  */
-                                                              return 2050;
+                                                              return 2363;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -16145,7 +19973,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x11011100x1xxxxx110011xxxxxxxxxx
                                                                  fmlal2.  */
                                                                  10987654321098765432109876543210
                                                                  x11011100x1xxxxx110011xxxxxxxxxx
                                                                  fmlal2.  */
-                                                              return 2054;
+                                                              return 2367;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -16167,7 +19995,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x01011101x1xxxxx110011xxxxxxxxxx
                                                                  fmlsl2.  */
                                                                  10987654321098765432109876543210
                                                                  x01011101x1xxxxx110011xxxxxxxxxx
                                                                  fmlsl2.  */
-                                                              return 2051;
+                                                              return 2364;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -16175,7 +20003,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x11011101x1xxxxx110011xxxxxxxxxx
                                                                  fmlsl2.  */
                                                                  10987654321098765432109876543210
                                                                  x11011101x1xxxxx110011xxxxxxxxxx
                                                                  fmlsl2.  */
-                                                              return 2055;
+                                                              return 2368;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -16214,7 +20042,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x00011100x1xxxxx111011xxxxxxxxxx
                                                                  fmlal.  */
                                                                  10987654321098765432109876543210
                                                                  x00011100x1xxxxx111011xxxxxxxxxx
                                                                  fmlal.  */
-                                                              return 2048;
+                                                              return 2361;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -16222,7 +20050,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10011100x1xxxxx111011xxxxxxxxxx
                                                                  fmlal.  */
                                                                  10987654321098765432109876543210
                                                                  x10011100x1xxxxx111011xxxxxxxxxx
                                                                  fmlal.  */
-                                                              return 2052;
+                                                              return 2365;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -16244,7 +20072,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x00011101x1xxxxx111011xxxxxxxxxx
                                                                  fmlsl.  */
                                                                  10987654321098765432109876543210
                                                                  x00011101x1xxxxx111011xxxxxxxxxx
                                                                  fmlsl.  */
-                                                              return 2049;
+                                                              return 2362;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -16252,7 +20080,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  x10011101x1xxxxx111011xxxxxxxxxx
                                                                  fmlsl.  */
                                                                  10987654321098765432109876543210
                                                                  x10011101x1xxxxx111011xxxxxxxxxx
                                                                  fmlsl.  */
-                                                              return 2053;
+                                                              return 2366;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -16382,7 +20210,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx100000x00000xxxxxxxxxx
                                                                      fcvtns.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx100000x00000xxxxxxxxxx
                                                                      fcvtns.  */
-                                                                  return 767;
+                                                                  return 768;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -16390,7 +20218,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx110000x00000xxxxxxxxxx
                                                                      fcvtms.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx110000x00000xxxxxxxxxx
                                                                      fcvtms.  */
-                                                                  return 787;
+                                                                  return 788;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -16401,7 +20229,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx101000x00000xxxxxxxxxx
                                                                      fcvtps.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx101000x00000xxxxxxxxxx
                                                                      fcvtps.  */
-                                                                  return 783;
+                                                                  return 784;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -16409,7 +20237,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx111000x00000xxxxxxxxxx
                                                                      fcvtzs.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx111000x00000xxxxxxxxxx
                                                                      fcvtzs.  */
-                                                                  return 791;
+                                                                  return 792;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -16419,7 +20247,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx11110xx1xx100x00000xxxxxxxxxx
                                                              fcvtas.  */
                                                              10987654321098765432109876543210
                                                              xxx11110xx1xx100x00000xxxxxxxxxx
                                                              fcvtas.  */
-                                                          return 775;
+                                                          return 776;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -16430,7 +20258,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx11110xx1xx010x00000xxxxxxxxxx
                                                              scvtf.  */
                                                              10987654321098765432109876543210
                                                              xxx11110xx1xx010x00000xxxxxxxxxx
                                                              scvtf.  */
-                                                          return 771;
+                                                          return 772;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -16440,7 +20268,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1x0110x00000xxxxxxxxxx
                                                                  fmov.  */
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1x0110x00000xxxxxxxxxx
                                                                  fmov.  */
-                                                              return 779;
+                                                              return 780;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -16450,7 +20278,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx101110x00000xxxxxxxxxx
                                                                      fmov.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx101110x00000xxxxxxxxxx
                                                                      fmov.  */
-                                                                  return 795;
+                                                                  return 796;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -16458,7 +20286,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx111110x00000xxxxxxxxxx
                                                                      fjcvtzs.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx111110x00000xxxxxxxxxx
                                                                      fjcvtzs.  */
-                                                                  return 797;
+                                                                  return 798;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -16478,7 +20306,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx100001x00000xxxxxxxxxx
                                                                      fcvtnu.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx100001x00000xxxxxxxxxx
                                                                      fcvtnu.  */
-                                                                  return 769;
+                                                                  return 770;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -16486,7 +20314,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx110001x00000xxxxxxxxxx
                                                                      fcvtmu.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx110001x00000xxxxxxxxxx
                                                                      fcvtmu.  */
-                                                                  return 789;
+                                                                  return 790;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -16497,7 +20325,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx101001x00000xxxxxxxxxx
                                                                      fcvtpu.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx101001x00000xxxxxxxxxx
                                                                      fcvtpu.  */
-                                                                  return 785;
+                                                                  return 786;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -16505,7 +20333,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx111001x00000xxxxxxxxxx
                                                                      fcvtzu.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx111001x00000xxxxxxxxxx
                                                                      fcvtzu.  */
-                                                                  return 793;
+                                                                  return 794;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -16515,7 +20343,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx11110xx1xx101x00000xxxxxxxxxx
                                                              fcvtau.  */
                                                              10987654321098765432109876543210
                                                              xxx11110xx1xx101x00000xxxxxxxxxx
                                                              fcvtau.  */
-                                                          return 777;
+                                                          return 778;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -16526,7 +20354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx11110xx1xx011x00000xxxxxxxxxx
                                                              ucvtf.  */
                                                              10987654321098765432109876543210
                                                              xxx11110xx1xx011x00000xxxxxxxxxx
                                                              ucvtf.  */
-                                                          return 773;
+                                                          return 774;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -16536,7 +20364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1x0111x00000xxxxxxxxxx
                                                                  fmov.  */
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1x0111x00000xxxxxxxxxx
                                                                  fmov.  */
-                                                              return 781;
+                                                              return 782;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -16544,7 +20372,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1x1111x00000xxxxxxxxxx
                                                                  fmov.  */
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1x1111x00000xxxxxxxxxx
                                                                  fmov.  */
-                                                              return 796;
+                                                              return 797;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -16566,7 +20394,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x0000010000xxxxxxxxxx
                                                                      fmov.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x0000010000xxxxxxxxxx
                                                                      fmov.  */
-                                                                  return 816;
+                                                                  return 817;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -16574,7 +20402,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x1000010000xxxxxxxxxx
                                                                      frint32z.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x1000010000xxxxxxxxxx
                                                                      frint32z.  */
-                                                                  return 812;
+                                                                  return 813;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -16583,7 +20411,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1xx100010000xxxxxxxxxx
                                                                  frintn.  */
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1xx100010000xxxxxxxxxx
                                                                  frintn.  */
-                                                              return 825;
+                                                              return 826;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -16596,7 +20424,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x0001010000xxxxxxxxxx
                                                                      fneg.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x0001010000xxxxxxxxxx
                                                                      fneg.  */
-                                                                  return 820;
+                                                                  return 821;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -16604,7 +20432,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x1001010000xxxxxxxxxx
                                                                      frint64z.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x1001010000xxxxxxxxxx
                                                                      frint64z.  */
-                                                                  return 814;
+                                                                  return 815;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -16613,7 +20441,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1xx101010000xxxxxxxxxx
                                                                  frintm.  */
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1xx101010000xxxxxxxxxx
                                                                  frintm.  */
-                                                              return 829;
+                                                              return 830;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -16629,7 +20457,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x0000110000xxxxxxxxxx
                                                                      fabs.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x0000110000xxxxxxxxxx
                                                                      fabs.  */
-                                                                  return 818;
+                                                                  return 819;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -16637,7 +20465,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x1000110000xxxxxxxxxx
                                                                      frint32x.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x1000110000xxxxxxxxxx
                                                                      frint32x.  */
-                                                                  return 813;
+                                                                  return 814;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -16646,7 +20474,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1xx100110000xxxxxxxxxx
                                                                  frintp.  */
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1xx100110000xxxxxxxxxx
                                                                  frintp.  */
-                                                              return 827;
+                                                              return 828;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -16659,7 +20487,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x0001110000xxxxxxxxxx
                                                                      fsqrt.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x0001110000xxxxxxxxxx
                                                                      fsqrt.  */
-                                                                  return 822;
+                                                                  return 823;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
@@ -16667,7 +20495,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x1001110000xxxxxxxxxx
                                                                      frint64x.  */
                                                                      10987654321098765432109876543210
                                                                      xxx11110xx1x1001110000xxxxxxxxxx
                                                                      frint64x.  */
-                                                                  return 815;
+                                                                  return 816;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -16676,7 +20504,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1xx101110000xxxxxxxxxx
                                                                  frintz.  */
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1xx101110000xxxxxxxxxx
                                                                  frintz.  */
-                                                              return 831;
+                                                              return 832;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -16689,7 +20517,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xxx11110xx1xx01xx10000xxxxxxxxxx
                                                          fcvt.  */
                                                          10987654321098765432109876543210
                                                          xxx11110xx1xx01xx10000xxxxxxxxxx
                                                          fcvt.  */
-                                                      return 824;
+                                                      return 825;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -16701,7 +20529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1xx110010000xxxxxxxxxx
                                                                  frinta.  */
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1xx110010000xxxxxxxxxx
                                                                  frinta.  */
-                                                              return 833;
+                                                              return 834;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -16709,7 +20537,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1xx111010000xxxxxxxxxx
                                                                  frintx.  */
                                                                  10987654321098765432109876543210
                                                                  xxx11110xx1xx111010000xxxxxxxxxx
                                                                  frintx.  */
-                                                              return 835;
+                                                              return 836;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -16718,7 +20546,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              xxx11110xx1xx11x110000xxxxxxxxxx
                                                              frinti.  */
                                                              10987654321098765432109876543210
                                                              xxx11110xx1xx11x110000xxxxxxxxxx
                                                              frinti.  */
-                                                          return 837;
+                                                          return 838;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -16734,7 +20562,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxx11110xx1xxxxxxx1000xxxxx00xxx
                                                      fcmp.  */
                                                      10987654321098765432109876543210
                                                      xxx11110xx1xxxxxxx1000xxxxx00xxx
                                                      fcmp.  */
-                                                  return 802;
+                                                  return 803;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -16742,7 +20570,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxx11110xx1xxxxxxx1000xxxxx10xxx
                                                      fcmpe.  */
                                                      10987654321098765432109876543210
                                                      xxx11110xx1xxxxxxx1000xxxxx10xxx
                                                      fcmpe.  */
-                                                  return 804;
+                                                  return 805;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -16753,7 +20581,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxx11110xx1xxxxxxx1000xxxxx01xxx
                                                      fcmp.  */
                                                      10987654321098765432109876543210
                                                      xxx11110xx1xxxxxxx1000xxxxx01xxx
                                                      fcmp.  */
-                                                  return 806;
+                                                  return 807;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -16761,7 +20589,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxx11110xx1xxxxxxx1000xxxxx11xxx
                                                      fcmpe.  */
                                                      10987654321098765432109876543210
                                                      xxx11110xx1xxxxxxx1000xxxxx11xxx
                                                      fcmpe.  */
-                                                  return 808;
+                                                  return 809;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -16774,7 +20602,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x0x11110xx1xxxxxxxx100xxxxxxxxxx
                                              fmov.  */
                                              10987654321098765432109876543210
                                              x0x11110xx1xxxxxxxx100xxxxxxxxxx
                                              fmov.  */
-                                          return 865;
+                                          return 866;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -16824,7 +20652,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x0x11110xx1xxxxx000010xxxxxxxxxx
                                                          fmul.  */
                                                          10987654321098765432109876543210
                                                          x0x11110xx1xxxxx000010xxxxxxxxxx
                                                          fmul.  */
-                                                      return 839;
+                                                      return 840;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -16845,7 +20673,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x0011110xx1xxxxx100010xxxxxxxxxx
                                                              fnmul.  */
                                                              10987654321098765432109876543210
                                                              x0011110xx1xxxxx100010xxxxxxxxxx
                                                              fnmul.  */
-                                                          return 855;
+                                                          return 856;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -16878,7 +20706,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x0011110xx1xxxxx010010xxxxxxxxxx
                                                              fmax.  */
                                                              10987654321098765432109876543210
                                                              x0011110xx1xxxxx010010xxxxxxxxxx
                                                              fmax.  */
-                                                          return 847;
+                                                          return 848;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -17043,7 +20871,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x0011110xx1xxxxx001010xxxxxxxxxx
                                                              fadd.  */
                                                              10987654321098765432109876543210
                                                              x0011110xx1xxxxx001010xxxxxxxxxx
                                                              fadd.  */
-                                                          return 843;
+                                                          return 844;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -17170,7 +20998,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          xx011110xx1xxxxx011010xxxxxxxxxx
                                                          fmaxnm.  */
                                                          10987654321098765432109876543210
                                                          xx011110xx1xxxxx011010xxxxxxxxxx
                                                          fmaxnm.  */
-                                                      return 851;
+                                                      return 852;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -17217,7 +21045,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                          10987654321098765432109876543210
                                                          x0x11110xx1xxxxx000110xxxxxxxxxx
                                                          fdiv.  */
                                                          10987654321098765432109876543210
                                                          x0x11110xx1xxxxx000110xxxxxxxxxx
                                                          fdiv.  */
-                                                      return 841;
+                                                      return 842;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -17256,7 +21084,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      xxx11110xx1xxxxx010110xxxxxxxxxx
                                                      fmin.  */
                                                      10987654321098765432109876543210
                                                      xxx11110xx1xxxxx010110xxxxxxxxxx
                                                      fmin.  */
-                                                  return 849;
+                                                  return 850;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -17425,7 +21253,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x0011110xx1xxxxx001110xxxxxxxxxx
                                                              fsub.  */
                                                              10987654321098765432109876543210
                                                              x0011110xx1xxxxx001110xxxxxxxxxx
                                                              fsub.  */
-                                                          return 845;
+                                                          return 846;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -17576,7 +21404,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                              10987654321098765432109876543210
                                                              x0011110xx1xxxxx011110xxxxxxxxxx
                                                              fminnm.  */
                                                              10987654321098765432109876543210
                                                              x0011110xx1xxxxx011110xxxxxxxxxx
                                                              fminnm.  */
-                                                          return 853;
+                                                          return 854;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -17678,7 +21506,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  x0011110xx1xxxxxxxxx01xxxxx0xxxx
                                                  fccmp.  */
                                                  10987654321098765432109876543210
                                                  x0011110xx1xxxxxxxxx01xxxxx0xxxx
                                                  fccmp.  */
-                                              return 798;
+                                              return 799;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -17686,7 +21514,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  x0011110xx1xxxxxxxxx01xxxxx1xxxx
                                                  fccmpe.  */
                                                  10987654321098765432109876543210
                                                  x0011110xx1xxxxxxxxx01xxxxx1xxxx
                                                  fccmpe.  */
-                                              return 800;
+                                              return 801;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -17849,7 +21677,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                              10987654321098765432109876543210
                                              x0011110xx1xxxxxxxxx11xxxxxxxxxx
                                              fcsel.  */
                                              10987654321098765432109876543210
                                              x0011110xx1xxxxxxxxx11xxxxxxxxxx
                                              fcsel.  */
-                                          return 867;
+                                          return 868;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -18060,7 +21888,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0001111xxxxxxxx0000x0xxxxxxxxxx
                                                      fmlal.  */
                                                      10987654321098765432109876543210
                                                      x0001111xxxxxxxx0000x0xxxxxxxxxx
                                                      fmlal.  */
-                                                  return 2056;
+                                                  return 2369;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -18068,7 +21896,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1001111xxxxxxxx0000x0xxxxxxxxxx
                                                      fmlal.  */
                                                      10987654321098765432109876543210
                                                      x1001111xxxxxxxx0000x0xxxxxxxxxx
                                                      fmlal.  */
-                                                  return 2060;
+                                                  return 2373;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -18090,7 +21918,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0001111xxxxxxxx0100x0xxxxxxxxxx
                                                      fmlsl.  */
                                                      10987654321098765432109876543210
                                                      x0001111xxxxxxxx0100x0xxxxxxxxxx
                                                      fmlsl.  */
-                                                  return 2057;
+                                                  return 2370;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -18098,7 +21926,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1001111xxxxxxxx0100x0xxxxxxxxxx
                                                      fmlsl.  */
                                                      10987654321098765432109876543210
                                                      x1001111xxxxxxxx0100x0xxxxxxxxxx
                                                      fmlsl.  */
-                                                  return 2061;
+                                                  return 2374;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -18348,7 +22176,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          x0011111xx0xxxxx0xxxxxxxxxxxxxxx
                                          fmadd.  */
                                          10987654321098765432109876543210
                                          x0011111xx0xxxxx0xxxxxxxxxxxxxxx
                                          fmadd.  */
-                                      return 857;
+                                      return 858;
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
@@ -18356,7 +22184,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          x0011111xx1xxxxx0xxxxxxxxxxxxxxx
                                          fnmadd.  */
                                          10987654321098765432109876543210
                                          x0011111xx1xxxxx0xxxxxxxxxxxxxxx
                                          fnmadd.  */
-                                      return 861;
+                                      return 862;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -18604,7 +22432,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0101111xxxxxxxx1000x0xxxxxxxxxx
                                                      fmlal2.  */
                                                      10987654321098765432109876543210
                                                      x0101111xxxxxxxx1000x0xxxxxxxxxx
                                                      fmlal2.  */
-                                                  return 2058;
+                                                  return 2371;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -18612,7 +22440,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1101111xxxxxxxx1000x0xxxxxxxxxx
                                                      fmlal2.  */
                                                      10987654321098765432109876543210
                                                      x1101111xxxxxxxx1000x0xxxxxxxxxx
                                                      fmlal2.  */
-                                                  return 2062;
+                                                  return 2375;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -18634,7 +22462,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x0101111xxxxxxxx1100x0xxxxxxxxxx
                                                      fmlsl2.  */
                                                      10987654321098765432109876543210
                                                      x0101111xxxxxxxx1100x0xxxxxxxxxx
                                                      fmlsl2.  */
-                                                  return 2059;
+                                                  return 2372;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -18642,7 +22470,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                      10987654321098765432109876543210
                                                      x1101111xxxxxxxx1100x0xxxxxxxxxx
                                                      fmlsl2.  */
                                                      10987654321098765432109876543210
                                                      x1101111xxxxxxxx1100x0xxxxxxxxxx
                                                      fmlsl2.  */
-                                                  return 2063;
+                                                  return 2376;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -18698,7 +22526,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx001111xxxxxxxx1110x0xxxxxxxxxx
                                                  sdot.  */
                                                  10987654321098765432109876543210
                                                  xx001111xxxxxxxx1110x0xxxxxxxxxx
                                                  sdot.  */
-                                              return 2030;
+                                              return 2343;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -18706,7 +22534,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                  10987654321098765432109876543210
                                                  xx101111xxxxxxxx1110x0xxxxxxxxxx
                                                  udot.  */
                                                  10987654321098765432109876543210
                                                  xx101111xxxxxxxx1110x0xxxxxxxxxx
                                                  udot.  */
-                                              return 2029;
+                                              return 2342;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -18799,11 +22627,66 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxx01111xxxxxxxx1111x0xxxxxxxxxx
-                                             sqrdmlsh.  */
-                                          return 130;
+                                          if (((word >> 29) & 0x1) == 0)
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx00111100xxxxxx1111x0xxxxxxxxxx
+                                                         sudot.  */
+                                                      return 2420;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx00111110xxxxxx1111x0xxxxxxxxxx
+                                                         usdot.  */
+                                                      return 2419;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx00111101xxxxxx1111x0xxxxxxxxxx
+                                                         bfdot.  */
+                                                      return 2431;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x000111111xxxxxx1111x0xxxxxxxxxx
+                                                             bfmlalb.  */
+                                                          return 2439;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x100111111xxxxxx1111x0xxxxxxxxxx
+                                                             bfmlalt.  */
+                                                          return 2438;
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xx101111xxxxxxxx1111x0xxxxxxxxxx
+                                                 sqrdmlsh.  */
+                                              return 130;
+                                            }
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -19038,7 +22921,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          x0011111xx0xxxxx1xxxxxxxxxxxxxxx
                                          fmsub.  */
                                          10987654321098765432109876543210
                                          x0011111xx0xxxxx1xxxxxxxxxxxxxxx
                                          fmsub.  */
-                                      return 859;
+                                      return 860;
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
@@ -19046,7 +22929,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                          10987654321098765432109876543210
                                          x0011111xx1xxxxx1xxxxxxxxxxxxxxx
                                          fnmsub.  */
                                          10987654321098765432109876543210
                                          x0011111xx1xxxxx1xxxxxxxxxxxxxxx
                                          fnmsub.  */
-                                      return 863;
+                                      return 864;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -19282,58 +23165,62 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
     case 19: return NULL;              /* addg --> NULL.  */
     case 16: value = 20; break;        /* sub --> subg.  */
     case 20: return NULL;              /* subg --> NULL.  */
     case 19: return NULL;              /* addg --> NULL.  */
     case 16: value = 20; break;        /* sub --> subg.  */
     case 20: return NULL;              /* subg --> NULL.  */
-    case 958: value = 962; break;      /* stnp --> stp.  */
-    case 962: return NULL;             /* stp --> NULL.  */
-    case 956: value = 957; break;      /* stllrb --> stllrh.  */
-    case 957: return NULL;             /* stllrh --> NULL.  */
-    case 959: value = 963; break;      /* ldnp --> ldp.  */
-    case 963: return NULL;             /* ldp --> NULL.  */
-    case 1606: value = 1607; break;    /* ldff1b --> ldff1b.  */
-    case 1607: return NULL;            /* ldff1b --> NULL.  */
-    case 1662: value = 1663; break;    /* ldff1sw --> ldff1sw.  */
-    case 1663: return NULL;            /* ldff1sw --> NULL.  */
-    case 1610: value = 1611; break;    /* ldff1b --> ldff1b.  */
-    case 1611: return NULL;            /* ldff1b --> NULL.  */
-    case 1629: value = 1630; break;    /* ldff1h --> ldff1h.  */
-    case 1630: return NULL;            /* ldff1h --> NULL.  */
-    case 1608: value = 1609; break;    /* ldff1b --> ldff1b.  */
-    case 1609: return NULL;            /* ldff1b --> NULL.  */
-    case 1627: value = 1628; break;    /* ldff1h --> ldff1h.  */
-    case 1628: return NULL;            /* ldff1h --> NULL.  */
-    case 1612: value = 1613; break;    /* ldff1b --> ldff1b.  */
-    case 1613: return NULL;            /* ldff1b --> NULL.  */
-    case 1631: value = 1632; break;    /* ldff1h --> ldff1h.  */
-    case 1632: return NULL;            /* ldff1h --> NULL.  */
-    case 1652: value = 1653; break;    /* ldff1sh --> ldff1sh.  */
-    case 1653: return NULL;            /* ldff1sh --> NULL.  */
-    case 1640: value = 1641; break;    /* ldff1sb --> ldff1sb.  */
-    case 1641: return NULL;            /* ldff1sb --> NULL.  */
-    case 1671: value = 1672; break;    /* ldff1w --> ldff1w.  */
-    case 1672: return NULL;            /* ldff1w --> NULL.  */
-    case 1644: value = 1645; break;    /* ldff1sb --> ldff1sb.  */
-    case 1645: return NULL;            /* ldff1sb --> NULL.  */
-    case 1654: value = 1655; break;    /* ldff1sh --> ldff1sh.  */
-    case 1655: return NULL;            /* ldff1sh --> NULL.  */
-    case 1642: value = 1643; break;    /* ldff1sb --> ldff1sb.  */
-    case 1643: return NULL;            /* ldff1sb --> NULL.  */
-    case 1673: value = 1674; break;    /* ldff1w --> ldff1w.  */
-    case 1674: return NULL;            /* ldff1w --> NULL.  */
-    case 1618: value = 1619; break;    /* ldff1d --> ldff1d.  */
-    case 1619: return NULL;            /* ldff1d --> NULL.  */
-    case 810: value = 811; break;      /* xaflag --> axflag.  */
-    case 811: value = 1174; break;     /* axflag --> msr.  */
-    case 1174: value = 1175; break;    /* msr --> hint.  */
-    case 1175: value = 1191; break;    /* hint --> clrex.  */
-    case 1191: value = 1192; break;    /* clrex --> dsb.  */
-    case 1192: value = 1195; break;    /* dsb --> dmb.  */
-    case 1195: value = 1196; break;    /* dmb --> isb.  */
-    case 1196: value = 1197; break;    /* isb --> sb.  */
-    case 1197: value = 1198; break;    /* sb --> sys.  */
-    case 1198: value = 1206; break;    /* sys --> msr.  */
-    case 1206: value = 2064; break;    /* msr --> cfinv.  */
-    case 2064: return NULL;            /* cfinv --> NULL.  */
-    case 1207: value = 1208; break;    /* sysl --> mrs.  */
-    case 1208: return NULL;            /* mrs --> NULL.  */
+    case 971: value = 975; break;      /* stnp --> stp.  */
+    case 975: return NULL;             /* stp --> NULL.  */
+    case 969: value = 970; break;      /* stllrb --> stllrh.  */
+    case 970: return NULL;             /* stllrh --> NULL.  */
+    case 972: value = 976; break;      /* ldnp --> ldp.  */
+    case 976: return NULL;             /* ldp --> NULL.  */
+    case 1628: value = 1629; break;    /* ldff1b --> ldff1b.  */
+    case 1629: return NULL;            /* ldff1b --> NULL.  */
+    case 1684: value = 1685; break;    /* ldff1sw --> ldff1sw.  */
+    case 1685: return NULL;            /* ldff1sw --> NULL.  */
+    case 1632: value = 1633; break;    /* ldff1b --> ldff1b.  */
+    case 1633: return NULL;            /* ldff1b --> NULL.  */
+    case 1651: value = 1652; break;    /* ldff1h --> ldff1h.  */
+    case 1652: return NULL;            /* ldff1h --> NULL.  */
+    case 1630: value = 1631; break;    /* ldff1b --> ldff1b.  */
+    case 1631: return NULL;            /* ldff1b --> NULL.  */
+    case 1649: value = 1650; break;    /* ldff1h --> ldff1h.  */
+    case 1650: return NULL;            /* ldff1h --> NULL.  */
+    case 1634: value = 1635; break;    /* ldff1b --> ldff1b.  */
+    case 1635: return NULL;            /* ldff1b --> NULL.  */
+    case 1653: value = 1654; break;    /* ldff1h --> ldff1h.  */
+    case 1654: return NULL;            /* ldff1h --> NULL.  */
+    case 1674: value = 1675; break;    /* ldff1sh --> ldff1sh.  */
+    case 1675: return NULL;            /* ldff1sh --> NULL.  */
+    case 1662: value = 1663; break;    /* ldff1sb --> ldff1sb.  */
+    case 1663: return NULL;            /* ldff1sb --> NULL.  */
+    case 1693: value = 1694; break;    /* ldff1w --> ldff1w.  */
+    case 1694: return NULL;            /* ldff1w --> NULL.  */
+    case 1666: value = 1667; break;    /* ldff1sb --> ldff1sb.  */
+    case 1667: return NULL;            /* ldff1sb --> NULL.  */
+    case 1676: value = 1677; break;    /* ldff1sh --> ldff1sh.  */
+    case 1677: return NULL;            /* ldff1sh --> NULL.  */
+    case 1664: value = 1665; break;    /* ldff1sb --> ldff1sb.  */
+    case 1665: return NULL;            /* ldff1sb --> NULL.  */
+    case 1695: value = 1696; break;    /* ldff1w --> ldff1w.  */
+    case 1696: return NULL;            /* ldff1w --> NULL.  */
+    case 1640: value = 1641; break;    /* ldff1d --> ldff1d.  */
+    case 1641: return NULL;            /* ldff1d --> NULL.  */
+    case 811: value = 812; break;      /* xaflag --> axflag.  */
+    case 812: value = 1190; break;     /* axflag --> tcommit.  */
+    case 1190: value = 1193; break;    /* tcommit --> msr.  */
+    case 1193: value = 1194; break;    /* msr --> hint.  */
+    case 1194: value = 1203; break;    /* hint --> dgh.  */
+    case 1203: value = 1212; break;    /* dgh --> clrex.  */
+    case 1212: value = 1213; break;    /* clrex --> dsb.  */
+    case 1213: value = 1216; break;    /* dsb --> dmb.  */
+    case 1216: value = 1217; break;    /* dmb --> isb.  */
+    case 1217: value = 1218; break;    /* isb --> sb.  */
+    case 1218: value = 1219; break;    /* sb --> sys.  */
+    case 1219: value = 1227; break;    /* sys --> cfinv.  */
+    case 1227: value = 1228; break;    /* cfinv --> msr.  */
+    case 1228: return NULL;            /* msr --> NULL.  */
+    case 1189: value = 1191; break;    /* tstart --> ttest.  */
+    case 1191: value = 1229; break;    /* ttest --> sysl.  */
+    case 1229: value = 1230; break;    /* sysl --> mrs.  */
+    case 1230: return NULL;            /* mrs --> NULL.  */
     case 440: value = 441; break;      /* st4 --> st1.  */
     case 441: value = 442; break;      /* st1 --> st2.  */
     case 442: value = 443; break;      /* st2 --> st3.  */
     case 440: value = 441; break;      /* st4 --> st1.  */
     case 441: value = 442; break;      /* st1 --> st2.  */
     case 442: value = 443; break;      /* st2 --> st3.  */
@@ -19366,98 +23253,100 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
     case 478: return NULL;             /* ld2r --> NULL.  */
     case 477: value = 479; break;      /* ld4 --> ld4r.  */
     case 479: return NULL;             /* ld4r --> NULL.  */
     case 478: return NULL;             /* ld2r --> NULL.  */
     case 477: value = 479; break;      /* ld4 --> ld4r.  */
     case 479: return NULL;             /* ld4r --> NULL.  */
-    case 763: value = 764; break;      /* fcvtzs --> fcvtzs.  */
-    case 764: return NULL;             /* fcvtzs --> NULL.  */
-    case 759: value = 760; break;      /* scvtf --> scvtf.  */
-    case 760: return NULL;             /* scvtf --> NULL.  */
-    case 765: value = 766; break;      /* fcvtzu --> fcvtzu.  */
-    case 766: return NULL;             /* fcvtzu --> NULL.  */
-    case 761: value = 762; break;      /* ucvtf --> ucvtf.  */
-    case 762: return NULL;             /* ucvtf --> NULL.  */
-    case 767: value = 768; break;      /* fcvtns --> fcvtns.  */
-    case 768: return NULL;             /* fcvtns --> NULL.  */
-    case 787: value = 788; break;      /* fcvtms --> fcvtms.  */
-    case 788: return NULL;             /* fcvtms --> NULL.  */
-    case 783: value = 784; break;      /* fcvtps --> fcvtps.  */
-    case 784: return NULL;             /* fcvtps --> NULL.  */
-    case 791: value = 792; break;      /* fcvtzs --> fcvtzs.  */
-    case 792: return NULL;             /* fcvtzs --> NULL.  */
-    case 775: value = 776; break;      /* fcvtas --> fcvtas.  */
-    case 776: return NULL;             /* fcvtas --> NULL.  */
-    case 771: value = 772; break;      /* scvtf --> scvtf.  */
-    case 772: return NULL;             /* scvtf --> NULL.  */
-    case 779: value = 780; break;      /* fmov --> fmov.  */
-    case 780: return NULL;             /* fmov --> NULL.  */
-    case 769: value = 770; break;      /* fcvtnu --> fcvtnu.  */
-    case 770: return NULL;             /* fcvtnu --> NULL.  */
-    case 789: value = 790; break;      /* fcvtmu --> fcvtmu.  */
-    case 790: return NULL;             /* fcvtmu --> NULL.  */
-    case 785: value = 786; break;      /* fcvtpu --> fcvtpu.  */
-    case 786: return NULL;             /* fcvtpu --> NULL.  */
-    case 793: value = 794; break;      /* fcvtzu --> fcvtzu.  */
-    case 794: return NULL;             /* fcvtzu --> NULL.  */
-    case 777: value = 778; break;      /* fcvtau --> fcvtau.  */
-    case 778: return NULL;             /* fcvtau --> NULL.  */
-    case 773: value = 774; break;      /* ucvtf --> ucvtf.  */
-    case 774: return NULL;             /* ucvtf --> NULL.  */
-    case 781: value = 782; break;      /* fmov --> fmov.  */
-    case 782: return NULL;             /* fmov --> NULL.  */
-    case 816: value = 817; break;      /* fmov --> fmov.  */
-    case 817: return NULL;             /* fmov --> NULL.  */
-    case 825: value = 826; break;      /* frintn --> frintn.  */
-    case 826: return NULL;             /* frintn --> NULL.  */
-    case 820: value = 821; break;      /* fneg --> fneg.  */
-    case 821: return NULL;             /* fneg --> NULL.  */
-    case 829: value = 830; break;      /* frintm --> frintm.  */
-    case 830: return NULL;             /* frintm --> NULL.  */
-    case 818: value = 819; break;      /* fabs --> fabs.  */
-    case 819: return NULL;             /* fabs --> NULL.  */
-    case 827: value = 828; break;      /* frintp --> frintp.  */
-    case 828: return NULL;             /* frintp --> NULL.  */
-    case 822: value = 823; break;      /* fsqrt --> fsqrt.  */
-    case 823: return NULL;             /* fsqrt --> NULL.  */
-    case 831: value = 832; break;      /* frintz --> frintz.  */
-    case 832: return NULL;             /* frintz --> NULL.  */
-    case 833: value = 834; break;      /* frinta --> frinta.  */
-    case 834: return NULL;             /* frinta --> NULL.  */
-    case 835: value = 836; break;      /* frintx --> frintx.  */
-    case 836: return NULL;             /* frintx --> NULL.  */
-    case 837: value = 838; break;      /* frinti --> frinti.  */
-    case 838: return NULL;             /* frinti --> NULL.  */
-    case 802: value = 803; break;      /* fcmp --> fcmp.  */
-    case 803: return NULL;             /* fcmp --> NULL.  */
-    case 804: value = 805; break;      /* fcmpe --> fcmpe.  */
-    case 805: return NULL;             /* fcmpe --> NULL.  */
-    case 806: value = 807; break;      /* fcmp --> fcmp.  */
-    case 807: return NULL;             /* fcmp --> NULL.  */
-    case 808: value = 809; break;      /* fcmpe --> fcmpe.  */
-    case 809: return NULL;             /* fcmpe --> NULL.  */
-    case 865: value = 866; break;      /* fmov --> fmov.  */
-    case 866: return NULL;             /* fmov --> NULL.  */
-    case 839: value = 840; break;      /* fmul --> fmul.  */
-    case 840: return NULL;             /* fmul --> NULL.  */
-    case 855: value = 856; break;      /* fnmul --> fnmul.  */
-    case 856: return NULL;             /* fnmul --> NULL.  */
-    case 847: value = 848; break;      /* fmax --> fmax.  */
-    case 848: return NULL;             /* fmax --> NULL.  */
-    case 843: value = 844; break;      /* fadd --> fadd.  */
-    case 844: return NULL;             /* fadd --> NULL.  */
-    case 851: value = 852; break;      /* fmaxnm --> fmaxnm.  */
-    case 852: return NULL;             /* fmaxnm --> NULL.  */
-    case 841: value = 842; break;      /* fdiv --> fdiv.  */
-    case 842: return NULL;             /* fdiv --> NULL.  */
-    case 849: value = 850; break;      /* fmin --> fmin.  */
-    case 850: return NULL;             /* fmin --> NULL.  */
-    case 845: value = 846; break;      /* fsub --> fsub.  */
-    case 846: return NULL;             /* fsub --> NULL.  */
-    case 853: value = 854; break;      /* fminnm --> fminnm.  */
-    case 854: return NULL;             /* fminnm --> NULL.  */
-    case 798: value = 799; break;      /* fccmp --> fccmp.  */
-    case 799: return NULL;             /* fccmp --> NULL.  */
-    case 800: value = 801; break;      /* fccmpe --> fccmpe.  */
-    case 801: return NULL;             /* fccmpe --> NULL.  */
-    case 867: value = 868; break;      /* fcsel --> fcsel.  */
-    case 868: return NULL;             /* fcsel --> NULL.  */
+    case 764: value = 765; break;      /* fcvtzs --> fcvtzs.  */
+    case 765: return NULL;             /* fcvtzs --> NULL.  */
+    case 760: value = 761; break;      /* scvtf --> scvtf.  */
+    case 761: return NULL;             /* scvtf --> NULL.  */
+    case 766: value = 767; break;      /* fcvtzu --> fcvtzu.  */
+    case 767: return NULL;             /* fcvtzu --> NULL.  */
+    case 762: value = 763; break;      /* ucvtf --> ucvtf.  */
+    case 763: return NULL;             /* ucvtf --> NULL.  */
+    case 768: value = 769; break;      /* fcvtns --> fcvtns.  */
+    case 769: return NULL;             /* fcvtns --> NULL.  */
+    case 788: value = 789; break;      /* fcvtms --> fcvtms.  */
+    case 789: return NULL;             /* fcvtms --> NULL.  */
+    case 784: value = 785; break;      /* fcvtps --> fcvtps.  */
+    case 785: return NULL;             /* fcvtps --> NULL.  */
+    case 792: value = 793; break;      /* fcvtzs --> fcvtzs.  */
+    case 793: return NULL;             /* fcvtzs --> NULL.  */
+    case 776: value = 777; break;      /* fcvtas --> fcvtas.  */
+    case 777: return NULL;             /* fcvtas --> NULL.  */
+    case 772: value = 773; break;      /* scvtf --> scvtf.  */
+    case 773: return NULL;             /* scvtf --> NULL.  */
+    case 780: value = 781; break;      /* fmov --> fmov.  */
+    case 781: return NULL;             /* fmov --> NULL.  */
+    case 770: value = 771; break;      /* fcvtnu --> fcvtnu.  */
+    case 771: return NULL;             /* fcvtnu --> NULL.  */
+    case 790: value = 791; break;      /* fcvtmu --> fcvtmu.  */
+    case 791: return NULL;             /* fcvtmu --> NULL.  */
+    case 786: value = 787; break;      /* fcvtpu --> fcvtpu.  */
+    case 787: return NULL;             /* fcvtpu --> NULL.  */
+    case 794: value = 795; break;      /* fcvtzu --> fcvtzu.  */
+    case 795: return NULL;             /* fcvtzu --> NULL.  */
+    case 778: value = 779; break;      /* fcvtau --> fcvtau.  */
+    case 779: return NULL;             /* fcvtau --> NULL.  */
+    case 774: value = 775; break;      /* ucvtf --> ucvtf.  */
+    case 775: return NULL;             /* ucvtf --> NULL.  */
+    case 782: value = 783; break;      /* fmov --> fmov.  */
+    case 783: return NULL;             /* fmov --> NULL.  */
+    case 817: value = 818; break;      /* fmov --> fmov.  */
+    case 818: return NULL;             /* fmov --> NULL.  */
+    case 826: value = 827; break;      /* frintn --> frintn.  */
+    case 827: return NULL;             /* frintn --> NULL.  */
+    case 821: value = 822; break;      /* fneg --> fneg.  */
+    case 822: return NULL;             /* fneg --> NULL.  */
+    case 830: value = 831; break;      /* frintm --> frintm.  */
+    case 831: return NULL;             /* frintm --> NULL.  */
+    case 819: value = 820; break;      /* fabs --> fabs.  */
+    case 820: return NULL;             /* fabs --> NULL.  */
+    case 828: value = 829; break;      /* frintp --> frintp.  */
+    case 829: return NULL;             /* frintp --> NULL.  */
+    case 823: value = 824; break;      /* fsqrt --> fsqrt.  */
+    case 824: return NULL;             /* fsqrt --> NULL.  */
+    case 832: value = 833; break;      /* frintz --> frintz.  */
+    case 833: return NULL;             /* frintz --> NULL.  */
+    case 825: value = 2435; break;     /* fcvt --> bfcvt.  */
+    case 2435: return NULL;            /* bfcvt --> NULL.  */
+    case 834: value = 835; break;      /* frinta --> frinta.  */
+    case 835: return NULL;             /* frinta --> NULL.  */
+    case 836: value = 837; break;      /* frintx --> frintx.  */
+    case 837: return NULL;             /* frintx --> NULL.  */
+    case 838: value = 839; break;      /* frinti --> frinti.  */
+    case 839: return NULL;             /* frinti --> NULL.  */
+    case 803: value = 804; break;      /* fcmp --> fcmp.  */
+    case 804: return NULL;             /* fcmp --> NULL.  */
+    case 805: value = 806; break;      /* fcmpe --> fcmpe.  */
+    case 806: return NULL;             /* fcmpe --> NULL.  */
+    case 807: value = 808; break;      /* fcmp --> fcmp.  */
+    case 808: return NULL;             /* fcmp --> NULL.  */
+    case 809: value = 810; break;      /* fcmpe --> fcmpe.  */
+    case 810: return NULL;             /* fcmpe --> NULL.  */
+    case 866: value = 867; break;      /* fmov --> fmov.  */
+    case 867: return NULL;             /* fmov --> NULL.  */
+    case 840: value = 841; break;      /* fmul --> fmul.  */
+    case 841: return NULL;             /* fmul --> NULL.  */
+    case 856: value = 857; break;      /* fnmul --> fnmul.  */
+    case 857: return NULL;             /* fnmul --> NULL.  */
+    case 848: value = 849; break;      /* fmax --> fmax.  */
+    case 849: return NULL;             /* fmax --> NULL.  */
+    case 844: value = 845; break;      /* fadd --> fadd.  */
+    case 845: return NULL;             /* fadd --> NULL.  */
+    case 852: value = 853; break;      /* fmaxnm --> fmaxnm.  */
+    case 853: return NULL;             /* fmaxnm --> NULL.  */
+    case 842: value = 843; break;      /* fdiv --> fdiv.  */
+    case 843: return NULL;             /* fdiv --> NULL.  */
+    case 850: value = 851; break;      /* fmin --> fmin.  */
+    case 851: return NULL;             /* fmin --> NULL.  */
+    case 846: value = 847; break;      /* fsub --> fsub.  */
+    case 847: return NULL;             /* fsub --> NULL.  */
+    case 854: value = 855; break;      /* fminnm --> fminnm.  */
+    case 855: return NULL;             /* fminnm --> NULL.  */
+    case 799: value = 800; break;      /* fccmp --> fccmp.  */
+    case 800: return NULL;             /* fccmp --> NULL.  */
+    case 801: value = 802; break;      /* fccmpe --> fccmpe.  */
+    case 802: return NULL;             /* fccmpe --> NULL.  */
+    case 868: value = 869; break;      /* fcsel --> fcsel.  */
+    case 869: return NULL;             /* fcsel --> NULL.  */
     case 133: value = 374; break;      /* movi --> sshr.  */
     case 374: value = 376; break;      /* sshr --> srshr.  */
     case 376: return NULL;             /* srshr --> NULL.  */
     case 133: value = 374; break;      /* movi --> sshr.  */
     case 374: value = 376; break;      /* sshr --> srshr.  */
     case 376: return NULL;             /* srshr --> NULL.  */
@@ -19476,10 +23365,10 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
     case 399: value = 401; break;      /* ursra --> sli.  */
     case 401: value = 403; break;      /* sli --> uqshl.  */
     case 403: return NULL;             /* uqshl --> NULL.  */
     case 399: value = 401; break;      /* ursra --> sli.  */
     case 401: value = 403; break;      /* sli --> uqshl.  */
     case 403: return NULL;             /* uqshl --> NULL.  */
-    case 857: value = 858; break;      /* fmadd --> fmadd.  */
-    case 858: return NULL;             /* fmadd --> NULL.  */
-    case 861: value = 862; break;      /* fnmadd --> fnmadd.  */
-    case 862: return NULL;             /* fnmadd --> NULL.  */
+    case 858: value = 859; break;      /* fmadd --> fmadd.  */
+    case 859: return NULL;             /* fmadd --> NULL.  */
+    case 862: value = 863; break;      /* fnmadd --> fnmadd.  */
+    case 863: return NULL;             /* fnmadd --> NULL.  */
     case 135: value = 380; break;      /* movi --> shrn.  */
     case 380: value = 381; break;      /* shrn --> shrn2.  */
     case 381: value = 388; break;      /* shrn2 --> sshll.  */
     case 135: value = 380; break;      /* movi --> shrn.  */
     case 380: value = 381; break;      /* shrn --> shrn2.  */
     case 381: value = 388; break;      /* shrn2 --> sshll.  */
@@ -19508,10 +23397,10 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
     case 395: return NULL;             /* fcvtzs --> NULL.  */
     case 418: value = 419; break;      /* fcvtzu --> fcvtzu.  */
     case 419: return NULL;             /* fcvtzu --> NULL.  */
     case 395: return NULL;             /* fcvtzs --> NULL.  */
     case 418: value = 419; break;      /* fcvtzu --> fcvtzu.  */
     case 419: return NULL;             /* fcvtzu --> NULL.  */
-    case 859: value = 860; break;      /* fmsub --> fmsub.  */
-    case 860: return NULL;             /* fmsub --> NULL.  */
-    case 863: value = 864; break;      /* fnmsub --> fnmsub.  */
-    case 864: return NULL;             /* fnmsub --> NULL.  */
+    case 860: value = 861; break;      /* fmsub --> fmsub.  */
+    case 861: return NULL;             /* fmsub --> NULL.  */
+    case 864: value = 865; break;      /* fnmsub --> fnmsub.  */
+    case 865: return NULL;             /* fnmsub --> NULL.  */
     case 598: value = 599; break;      /* scvtf --> scvtf.  */
     case 599: return NULL;             /* scvtf --> NULL.  */
     case 600: value = 601; break;      /* fcvtzs --> fcvtzs.  */
     case 598: value = 599; break;      /* scvtf --> scvtf.  */
     case 599: return NULL;             /* scvtf --> NULL.  */
     case 600: value = 601; break;      /* fcvtzs --> fcvtzs.  */
@@ -19572,95 +23461,95 @@ aarch64_find_alias_opcode (const aarch64_opcode *opcode)
     case 741: value = 742; break;      /* smsubl --> smnegl.  */
     case 744: value = 745; break;      /* umaddl --> umull.  */
     case 746: value = 747; break;      /* umsubl --> umnegl.  */
     case 741: value = 742; break;      /* smsubl --> smnegl.  */
     case 744: value = 745; break;      /* umaddl --> umull.  */
     case 746: value = 747; break;      /* umsubl --> umnegl.  */
-    case 757: value = 758; break;      /* extr --> ror.  */
-    case 976: value = 977; break;      /* and --> bic.  */
-    case 978: value = 979; break;      /* orr --> mov.  */
-    case 981: value = 982; break;      /* ands --> tst.  */
-    case 985: value = 987; break;      /* orr --> uxtw.  */
-    case 988: value = 989; break;      /* orn --> mvn.  */
-    case 992: value = 993; break;      /* ands --> tst.  */
-    case 1023: value = 1119; break;    /* ldaddb --> staddb.  */
-    case 1024: value = 1120; break;    /* ldaddh --> staddh.  */
-    case 1025: value = 1121; break;    /* ldadd --> stadd.  */
-    case 1027: value = 1122; break;    /* ldaddlb --> staddlb.  */
-    case 1030: value = 1123; break;    /* ldaddlh --> staddlh.  */
-    case 1033: value = 1124; break;    /* ldaddl --> staddl.  */
-    case 1035: value = 1125; break;    /* ldclrb --> stclrb.  */
-    case 1036: value = 1126; break;    /* ldclrh --> stclrh.  */
-    case 1037: value = 1127; break;    /* ldclr --> stclr.  */
-    case 1039: value = 1128; break;    /* ldclrlb --> stclrlb.  */
-    case 1042: value = 1129; break;    /* ldclrlh --> stclrlh.  */
-    case 1045: value = 1130; break;    /* ldclrl --> stclrl.  */
-    case 1047: value = 1131; break;    /* ldeorb --> steorb.  */
-    case 1048: value = 1132; break;    /* ldeorh --> steorh.  */
-    case 1049: value = 1133; break;    /* ldeor --> steor.  */
-    case 1051: value = 1134; break;    /* ldeorlb --> steorlb.  */
-    case 1054: value = 1135; break;    /* ldeorlh --> steorlh.  */
-    case 1057: value = 1136; break;    /* ldeorl --> steorl.  */
-    case 1059: value = 1137; break;    /* ldsetb --> stsetb.  */
-    case 1060: value = 1138; break;    /* ldseth --> stseth.  */
-    case 1061: value = 1139; break;    /* ldset --> stset.  */
-    case 1063: value = 1140; break;    /* ldsetlb --> stsetlb.  */
-    case 1066: value = 1141; break;    /* ldsetlh --> stsetlh.  */
-    case 1069: value = 1142; break;    /* ldsetl --> stsetl.  */
-    case 1071: value = 1143; break;    /* ldsmaxb --> stsmaxb.  */
-    case 1072: value = 1144; break;    /* ldsmaxh --> stsmaxh.  */
-    case 1073: value = 1145; break;    /* ldsmax --> stsmax.  */
-    case 1075: value = 1146; break;    /* ldsmaxlb --> stsmaxlb.  */
-    case 1078: value = 1147; break;    /* ldsmaxlh --> stsmaxlh.  */
-    case 1081: value = 1148; break;    /* ldsmaxl --> stsmaxl.  */
-    case 1083: value = 1149; break;    /* ldsminb --> stsminb.  */
-    case 1084: value = 1150; break;    /* ldsminh --> stsminh.  */
-    case 1085: value = 1151; break;    /* ldsmin --> stsmin.  */
-    case 1087: value = 1152; break;    /* ldsminlb --> stsminlb.  */
-    case 1090: value = 1153; break;    /* ldsminlh --> stsminlh.  */
-    case 1093: value = 1154; break;    /* ldsminl --> stsminl.  */
-    case 1095: value = 1155; break;    /* ldumaxb --> stumaxb.  */
-    case 1096: value = 1156; break;    /* ldumaxh --> stumaxh.  */
-    case 1097: value = 1157; break;    /* ldumax --> stumax.  */
-    case 1099: value = 1158; break;    /* ldumaxlb --> stumaxlb.  */
-    case 1102: value = 1159; break;    /* ldumaxlh --> stumaxlh.  */
-    case 1105: value = 1160; break;    /* ldumaxl --> stumaxl.  */
-    case 1107: value = 1161; break;    /* lduminb --> stuminb.  */
-    case 1108: value = 1162; break;    /* lduminh --> stuminh.  */
-    case 1109: value = 1163; break;    /* ldumin --> stumin.  */
-    case 1111: value = 1164; break;    /* lduminlb --> stuminlb.  */
-    case 1114: value = 1165; break;    /* lduminlh --> stuminlh.  */
-    case 1117: value = 1166; break;    /* lduminl --> stuminl.  */
-    case 1167: value = 1168; break;    /* movn --> mov.  */
-    case 1169: value = 1170; break;    /* movz --> mov.  */
-    case 1175: value = 1216; break;    /* hint --> autibsp.  */
-    case 1192: value = 1194; break;    /* dsb --> pssbb.  */
-    case 1198: value = 1205; break;    /* sys --> cpp.  */
-    case 1264: value = 2014; break;    /* and --> bic.  */
-    case 1266: value = 1247; break;    /* and --> mov.  */
-    case 1267: value = 1251; break;    /* ands --> movs.  */
-    case 1302: value = 2015; break;    /* cmpge --> cmple.  */
-    case 1305: value = 2018; break;    /* cmpgt --> cmplt.  */
-    case 1307: value = 2016; break;    /* cmphi --> cmplo.  */
-    case 1310: value = 2017; break;    /* cmphs --> cmpls.  */
-    case 1332: value = 1244; break;    /* cpy --> mov.  */
-    case 1333: value = 1246; break;    /* cpy --> mov.  */
-    case 1334: value = 2025; break;    /* cpy --> fmov.  */
-    case 1346: value = 1239; break;    /* dup --> mov.  */
-    case 1347: value = 1241; break;    /* dup --> mov.  */
-    case 1348: value = 2024; break;    /* dup --> fmov.  */
-    case 1349: value = 1242; break;    /* dupm --> mov.  */
-    case 1351: value = 2019; break;    /* eor --> eon.  */
-    case 1353: value = 1252; break;    /* eor --> not.  */
-    case 1354: value = 1253; break;    /* eors --> nots.  */
-    case 1359: value = 2020; break;    /* facge --> facle.  */
-    case 1360: value = 2021; break;    /* facgt --> faclt.  */
-    case 1373: value = 2022; break;    /* fcmge --> fcmle.  */
-    case 1375: value = 2023; break;    /* fcmgt --> fcmlt.  */
-    case 1381: value = 1236; break;    /* fcpy --> fmov.  */
-    case 1404: value = 1235; break;    /* fdup --> fmov.  */
-    case 1735: value = 1237; break;    /* orr --> mov.  */
-    case 1736: value = 2026; break;    /* orr --> orn.  */
-    case 1738: value = 1240; break;    /* orr --> mov.  */
-    case 1739: value = 1250; break;    /* orrs --> movs.  */
-    case 1801: value = 1245; break;    /* sel --> mov.  */
-    case 1802: value = 1248; break;    /* sel --> mov.  */
+    case 758: value = 759; break;      /* extr --> ror.  */
+    case 991: value = 992; break;      /* and --> bic.  */
+    case 993: value = 994; break;      /* orr --> mov.  */
+    case 996: value = 997; break;      /* ands --> tst.  */
+    case 1000: value = 1002; break;    /* orr --> uxtw.  */
+    case 1003: value = 1004; break;    /* orn --> mvn.  */
+    case 1007: value = 1008; break;    /* ands --> tst.  */
+    case 1038: value = 1134; break;    /* ldaddb --> staddb.  */
+    case 1039: value = 1135; break;    /* ldaddh --> staddh.  */
+    case 1040: value = 1136; break;    /* ldadd --> stadd.  */
+    case 1042: value = 1137; break;    /* ldaddlb --> staddlb.  */
+    case 1045: value = 1138; break;    /* ldaddlh --> staddlh.  */
+    case 1048: value = 1139; break;    /* ldaddl --> staddl.  */
+    case 1050: value = 1140; break;    /* ldclrb --> stclrb.  */
+    case 1051: value = 1141; break;    /* ldclrh --> stclrh.  */
+    case 1052: value = 1142; break;    /* ldclr --> stclr.  */
+    case 1054: value = 1143; break;    /* ldclrlb --> stclrlb.  */
+    case 1057: value = 1144; break;    /* ldclrlh --> stclrlh.  */
+    case 1060: value = 1145; break;    /* ldclrl --> stclrl.  */
+    case 1062: value = 1146; break;    /* ldeorb --> steorb.  */
+    case 1063: value = 1147; break;    /* ldeorh --> steorh.  */
+    case 1064: value = 1148; break;    /* ldeor --> steor.  */
+    case 1066: value = 1149; break;    /* ldeorlb --> steorlb.  */
+    case 1069: value = 1150; break;    /* ldeorlh --> steorlh.  */
+    case 1072: value = 1151; break;    /* ldeorl --> steorl.  */
+    case 1074: value = 1152; break;    /* ldsetb --> stsetb.  */
+    case 1075: value = 1153; break;    /* ldseth --> stseth.  */
+    case 1076: value = 1154; break;    /* ldset --> stset.  */
+    case 1078: value = 1155; break;    /* ldsetlb --> stsetlb.  */
+    case 1081: value = 1156; break;    /* ldsetlh --> stsetlh.  */
+    case 1084: value = 1157; break;    /* ldsetl --> stsetl.  */
+    case 1086: value = 1158; break;    /* ldsmaxb --> stsmaxb.  */
+    case 1087: value = 1159; break;    /* ldsmaxh --> stsmaxh.  */
+    case 1088: value = 1160; break;    /* ldsmax --> stsmax.  */
+    case 1090: value = 1161; break;    /* ldsmaxlb --> stsmaxlb.  */
+    case 1093: value = 1162; break;    /* ldsmaxlh --> stsmaxlh.  */
+    case 1096: value = 1163; break;    /* ldsmaxl --> stsmaxl.  */
+    case 1098: value = 1164; break;    /* ldsminb --> stsminb.  */
+    case 1099: value = 1165; break;    /* ldsminh --> stsminh.  */
+    case 1100: value = 1166; break;    /* ldsmin --> stsmin.  */
+    case 1102: value = 1167; break;    /* ldsminlb --> stsminlb.  */
+    case 1105: value = 1168; break;    /* ldsminlh --> stsminlh.  */
+    case 1108: value = 1169; break;    /* ldsminl --> stsminl.  */
+    case 1110: value = 1170; break;    /* ldumaxb --> stumaxb.  */
+    case 1111: value = 1171; break;    /* ldumaxh --> stumaxh.  */
+    case 1112: value = 1172; break;    /* ldumax --> stumax.  */
+    case 1114: value = 1173; break;    /* ldumaxlb --> stumaxlb.  */
+    case 1117: value = 1174; break;    /* ldumaxlh --> stumaxlh.  */
+    case 1120: value = 1175; break;    /* ldumaxl --> stumaxl.  */
+    case 1122: value = 1176; break;    /* lduminb --> stuminb.  */
+    case 1123: value = 1177; break;    /* lduminh --> stuminh.  */
+    case 1124: value = 1178; break;    /* ldumin --> stumin.  */
+    case 1126: value = 1179; break;    /* lduminlb --> stuminlb.  */
+    case 1129: value = 1180; break;    /* lduminlh --> stuminlh.  */
+    case 1132: value = 1181; break;    /* lduminl --> stuminl.  */
+    case 1182: value = 1183; break;    /* movn --> mov.  */
+    case 1184: value = 1185; break;    /* movz --> mov.  */
+    case 1194: value = 1238; break;    /* hint --> autibsp.  */
+    case 1213: value = 1215; break;    /* dsb --> pssbb.  */
+    case 1219: value = 1226; break;    /* sys --> cpp.  */
+    case 1286: value = 2036; break;    /* and --> bic.  */
+    case 1288: value = 1269; break;    /* and --> mov.  */
+    case 1289: value = 1273; break;    /* ands --> movs.  */
+    case 1324: value = 2037; break;    /* cmpge --> cmple.  */
+    case 1327: value = 2040; break;    /* cmpgt --> cmplt.  */
+    case 1329: value = 2038; break;    /* cmphi --> cmplo.  */
+    case 1332: value = 2039; break;    /* cmphs --> cmpls.  */
+    case 1354: value = 1266; break;    /* cpy --> mov.  */
+    case 1355: value = 1268; break;    /* cpy --> mov.  */
+    case 1356: value = 2047; break;    /* cpy --> fmov.  */
+    case 1368: value = 1261; break;    /* dup --> mov.  */
+    case 1369: value = 1263; break;    /* dup --> mov.  */
+    case 1370: value = 2046; break;    /* dup --> fmov.  */
+    case 1371: value = 1264; break;    /* dupm --> mov.  */
+    case 1373: value = 2041; break;    /* eor --> eon.  */
+    case 1375: value = 1274; break;    /* eor --> not.  */
+    case 1376: value = 1275; break;    /* eors --> nots.  */
+    case 1381: value = 2042; break;    /* facge --> facle.  */
+    case 1382: value = 2043; break;    /* facgt --> faclt.  */
+    case 1395: value = 2044; break;    /* fcmge --> fcmle.  */
+    case 1397: value = 2045; break;    /* fcmgt --> fcmlt.  */
+    case 1403: value = 1258; break;    /* fcpy --> fmov.  */
+    case 1426: value = 1257; break;    /* fdup --> fmov.  */
+    case 1757: value = 1259; break;    /* orr --> mov.  */
+    case 1758: value = 2048; break;    /* orr --> orn.  */
+    case 1760: value = 1262; break;    /* orr --> mov.  */
+    case 1761: value = 1272; break;    /* orrs --> movs.  */
+    case 1823: value = 1267; break;    /* sel --> mov.  */
+    case 1824: value = 1270; break;    /* sel --> mov.  */
     default: return NULL;
     }
 
     default: return NULL;
     }
 
@@ -19728,128 +23617,129 @@ aarch64_find_next_alias_opcode (const aarch64_opcode *opcode)
     case 742: value = 741; break;      /* smnegl --> smsubl.  */
     case 745: value = 744; break;      /* umull --> umaddl.  */
     case 747: value = 746; break;      /* umnegl --> umsubl.  */
     case 742: value = 741; break;      /* smnegl --> smsubl.  */
     case 745: value = 744; break;      /* umull --> umaddl.  */
     case 747: value = 746; break;      /* umnegl --> umsubl.  */
-    case 758: value = 757; break;      /* ror --> extr.  */
-    case 977: value = 976; break;      /* bic --> and.  */
-    case 979: value = 978; break;      /* mov --> orr.  */
-    case 982: value = 981; break;      /* tst --> ands.  */
-    case 987: value = 986; break;      /* uxtw --> mov.  */
-    case 986: value = 985; break;      /* mov --> orr.  */
-    case 989: value = 988; break;      /* mvn --> orn.  */
-    case 993: value = 992; break;      /* tst --> ands.  */
-    case 1119: value = 1023; break;    /* staddb --> ldaddb.  */
-    case 1120: value = 1024; break;    /* staddh --> ldaddh.  */
-    case 1121: value = 1025; break;    /* stadd --> ldadd.  */
-    case 1122: value = 1027; break;    /* staddlb --> ldaddlb.  */
-    case 1123: value = 1030; break;    /* staddlh --> ldaddlh.  */
-    case 1124: value = 1033; break;    /* staddl --> ldaddl.  */
-    case 1125: value = 1035; break;    /* stclrb --> ldclrb.  */
-    case 1126: value = 1036; break;    /* stclrh --> ldclrh.  */
-    case 1127: value = 1037; break;    /* stclr --> ldclr.  */
-    case 1128: value = 1039; break;    /* stclrlb --> ldclrlb.  */
-    case 1129: value = 1042; break;    /* stclrlh --> ldclrlh.  */
-    case 1130: value = 1045; break;    /* stclrl --> ldclrl.  */
-    case 1131: value = 1047; break;    /* steorb --> ldeorb.  */
-    case 1132: value = 1048; break;    /* steorh --> ldeorh.  */
-    case 1133: value = 1049; break;    /* steor --> ldeor.  */
-    case 1134: value = 1051; break;    /* steorlb --> ldeorlb.  */
-    case 1135: value = 1054; break;    /* steorlh --> ldeorlh.  */
-    case 1136: value = 1057; break;    /* steorl --> ldeorl.  */
-    case 1137: value = 1059; break;    /* stsetb --> ldsetb.  */
-    case 1138: value = 1060; break;    /* stseth --> ldseth.  */
-    case 1139: value = 1061; break;    /* stset --> ldset.  */
-    case 1140: value = 1063; break;    /* stsetlb --> ldsetlb.  */
-    case 1141: value = 1066; break;    /* stsetlh --> ldsetlh.  */
-    case 1142: value = 1069; break;    /* stsetl --> ldsetl.  */
-    case 1143: value = 1071; break;    /* stsmaxb --> ldsmaxb.  */
-    case 1144: value = 1072; break;    /* stsmaxh --> ldsmaxh.  */
-    case 1145: value = 1073; break;    /* stsmax --> ldsmax.  */
-    case 1146: value = 1075; break;    /* stsmaxlb --> ldsmaxlb.  */
-    case 1147: value = 1078; break;    /* stsmaxlh --> ldsmaxlh.  */
-    case 1148: value = 1081; break;    /* stsmaxl --> ldsmaxl.  */
-    case 1149: value = 1083; break;    /* stsminb --> ldsminb.  */
-    case 1150: value = 1084; break;    /* stsminh --> ldsminh.  */
-    case 1151: value = 1085; break;    /* stsmin --> ldsmin.  */
-    case 1152: value = 1087; break;    /* stsminlb --> ldsminlb.  */
-    case 1153: value = 1090; break;    /* stsminlh --> ldsminlh.  */
-    case 1154: value = 1093; break;    /* stsminl --> ldsminl.  */
-    case 1155: value = 1095; break;    /* stumaxb --> ldumaxb.  */
-    case 1156: value = 1096; break;    /* stumaxh --> ldumaxh.  */
-    case 1157: value = 1097; break;    /* stumax --> ldumax.  */
-    case 1158: value = 1099; break;    /* stumaxlb --> ldumaxlb.  */
-    case 1159: value = 1102; break;    /* stumaxlh --> ldumaxlh.  */
-    case 1160: value = 1105; break;    /* stumaxl --> ldumaxl.  */
-    case 1161: value = 1107; break;    /* stuminb --> lduminb.  */
-    case 1162: value = 1108; break;    /* stuminh --> lduminh.  */
-    case 1163: value = 1109; break;    /* stumin --> ldumin.  */
-    case 1164: value = 1111; break;    /* stuminlb --> lduminlb.  */
-    case 1165: value = 1114; break;    /* stuminlh --> lduminlh.  */
-    case 1166: value = 1117; break;    /* stuminl --> lduminl.  */
-    case 1168: value = 1167; break;    /* mov --> movn.  */
-    case 1170: value = 1169; break;    /* mov --> movz.  */
-    case 1216: value = 1215; break;    /* autibsp --> autibz.  */
-    case 1215: value = 1214; break;    /* autibz --> autiasp.  */
-    case 1214: value = 1213; break;    /* autiasp --> autiaz.  */
-    case 1213: value = 1212; break;    /* autiaz --> pacibsp.  */
-    case 1212: value = 1211; break;    /* pacibsp --> pacibz.  */
-    case 1211: value = 1210; break;    /* pacibz --> paciasp.  */
-    case 1210: value = 1209; break;    /* paciasp --> paciaz.  */
-    case 1209: value = 1190; break;    /* paciaz --> psb.  */
-    case 1190: value = 1189; break;    /* psb --> esb.  */
-    case 1189: value = 1188; break;    /* esb --> autib1716.  */
-    case 1188: value = 1187; break;    /* autib1716 --> autia1716.  */
-    case 1187: value = 1186; break;    /* autia1716 --> pacib1716.  */
-    case 1186: value = 1185; break;    /* pacib1716 --> pacia1716.  */
-    case 1185: value = 1184; break;    /* pacia1716 --> xpaclri.  */
-    case 1184: value = 1183; break;    /* xpaclri --> sevl.  */
-    case 1183: value = 1182; break;    /* sevl --> sev.  */
-    case 1182: value = 1181; break;    /* sev --> wfi.  */
-    case 1181: value = 1180; break;    /* wfi --> wfe.  */
-    case 1180: value = 1179; break;    /* wfe --> yield.  */
-    case 1179: value = 1178; break;    /* yield --> bti.  */
-    case 1178: value = 1177; break;    /* bti --> csdb.  */
-    case 1177: value = 1176; break;    /* csdb --> nop.  */
-    case 1176: value = 1175; break;    /* nop --> hint.  */
-    case 1194: value = 1193; break;    /* pssbb --> ssbb.  */
-    case 1193: value = 1192; break;    /* ssbb --> dsb.  */
-    case 1205: value = 1204; break;    /* cpp --> dvp.  */
-    case 1204: value = 1203; break;    /* dvp --> cfp.  */
-    case 1203: value = 1202; break;    /* cfp --> tlbi.  */
-    case 1202: value = 1201; break;    /* tlbi --> ic.  */
-    case 1201: value = 1200; break;    /* ic --> dc.  */
-    case 1200: value = 1199; break;    /* dc --> at.  */
-    case 1199: value = 1198; break;    /* at --> sys.  */
-    case 2014: value = 1264; break;    /* bic --> and.  */
-    case 1247: value = 1266; break;    /* mov --> and.  */
-    case 1251: value = 1267; break;    /* movs --> ands.  */
-    case 2015: value = 1302; break;    /* cmple --> cmpge.  */
-    case 2018: value = 1305; break;    /* cmplt --> cmpgt.  */
-    case 2016: value = 1307; break;    /* cmplo --> cmphi.  */
-    case 2017: value = 1310; break;    /* cmpls --> cmphs.  */
-    case 1244: value = 1332; break;    /* mov --> cpy.  */
-    case 1246: value = 1333; break;    /* mov --> cpy.  */
-    case 2025: value = 1249; break;    /* fmov --> mov.  */
-    case 1249: value = 1334; break;    /* mov --> cpy.  */
-    case 1239: value = 1346; break;    /* mov --> dup.  */
-    case 1241: value = 1238; break;    /* mov --> mov.  */
-    case 1238: value = 1347; break;    /* mov --> dup.  */
-    case 2024: value = 1243; break;    /* fmov --> mov.  */
-    case 1243: value = 1348; break;    /* mov --> dup.  */
-    case 1242: value = 1349; break;    /* mov --> dupm.  */
-    case 2019: value = 1351; break;    /* eon --> eor.  */
-    case 1252: value = 1353; break;    /* not --> eor.  */
-    case 1253: value = 1354; break;    /* nots --> eors.  */
-    case 2020: value = 1359; break;    /* facle --> facge.  */
-    case 2021: value = 1360; break;    /* faclt --> facgt.  */
-    case 2022: value = 1373; break;    /* fcmle --> fcmge.  */
-    case 2023: value = 1375; break;    /* fcmlt --> fcmgt.  */
-    case 1236: value = 1381; break;    /* fmov --> fcpy.  */
-    case 1235: value = 1404; break;    /* fmov --> fdup.  */
-    case 1237: value = 1735; break;    /* mov --> orr.  */
-    case 2026: value = 1736; break;    /* orn --> orr.  */
-    case 1240: value = 1738; break;    /* mov --> orr.  */
-    case 1250: value = 1739; break;    /* movs --> orrs.  */
-    case 1245: value = 1801; break;    /* mov --> sel.  */
-    case 1248: value = 1802; break;    /* mov --> sel.  */
+    case 759: value = 758; break;      /* ror --> extr.  */
+    case 992: value = 991; break;      /* bic --> and.  */
+    case 994: value = 993; break;      /* mov --> orr.  */
+    case 997: value = 996; break;      /* tst --> ands.  */
+    case 1002: value = 1001; break;    /* uxtw --> mov.  */
+    case 1001: value = 1000; break;    /* mov --> orr.  */
+    case 1004: value = 1003; break;    /* mvn --> orn.  */
+    case 1008: value = 1007; break;    /* tst --> ands.  */
+    case 1134: value = 1038; break;    /* staddb --> ldaddb.  */
+    case 1135: value = 1039; break;    /* staddh --> ldaddh.  */
+    case 1136: value = 1040; break;    /* stadd --> ldadd.  */
+    case 1137: value = 1042; break;    /* staddlb --> ldaddlb.  */
+    case 1138: value = 1045; break;    /* staddlh --> ldaddlh.  */
+    case 1139: value = 1048; break;    /* staddl --> ldaddl.  */
+    case 1140: value = 1050; break;    /* stclrb --> ldclrb.  */
+    case 1141: value = 1051; break;    /* stclrh --> ldclrh.  */
+    case 1142: value = 1052; break;    /* stclr --> ldclr.  */
+    case 1143: value = 1054; break;    /* stclrlb --> ldclrlb.  */
+    case 1144: value = 1057; break;    /* stclrlh --> ldclrlh.  */
+    case 1145: value = 1060; break;    /* stclrl --> ldclrl.  */
+    case 1146: value = 1062; break;    /* steorb --> ldeorb.  */
+    case 1147: value = 1063; break;    /* steorh --> ldeorh.  */
+    case 1148: value = 1064; break;    /* steor --> ldeor.  */
+    case 1149: value = 1066; break;    /* steorlb --> ldeorlb.  */
+    case 1150: value = 1069; break;    /* steorlh --> ldeorlh.  */
+    case 1151: value = 1072; break;    /* steorl --> ldeorl.  */
+    case 1152: value = 1074; break;    /* stsetb --> ldsetb.  */
+    case 1153: value = 1075; break;    /* stseth --> ldseth.  */
+    case 1154: value = 1076; break;    /* stset --> ldset.  */
+    case 1155: value = 1078; break;    /* stsetlb --> ldsetlb.  */
+    case 1156: value = 1081; break;    /* stsetlh --> ldsetlh.  */
+    case 1157: value = 1084; break;    /* stsetl --> ldsetl.  */
+    case 1158: value = 1086; break;    /* stsmaxb --> ldsmaxb.  */
+    case 1159: value = 1087; break;    /* stsmaxh --> ldsmaxh.  */
+    case 1160: value = 1088; break;    /* stsmax --> ldsmax.  */
+    case 1161: value = 1090; break;    /* stsmaxlb --> ldsmaxlb.  */
+    case 1162: value = 1093; break;    /* stsmaxlh --> ldsmaxlh.  */
+    case 1163: value = 1096; break;    /* stsmaxl --> ldsmaxl.  */
+    case 1164: value = 1098; break;    /* stsminb --> ldsminb.  */
+    case 1165: value = 1099; break;    /* stsminh --> ldsminh.  */
+    case 1166: value = 1100; break;    /* stsmin --> ldsmin.  */
+    case 1167: value = 1102; break;    /* stsminlb --> ldsminlb.  */
+    case 1168: value = 1105; break;    /* stsminlh --> ldsminlh.  */
+    case 1169: value = 1108; break;    /* stsminl --> ldsminl.  */
+    case 1170: value = 1110; break;    /* stumaxb --> ldumaxb.  */
+    case 1171: value = 1111; break;    /* stumaxh --> ldumaxh.  */
+    case 1172: value = 1112; break;    /* stumax --> ldumax.  */
+    case 1173: value = 1114; break;    /* stumaxlb --> ldumaxlb.  */
+    case 1174: value = 1117; break;    /* stumaxlh --> ldumaxlh.  */
+    case 1175: value = 1120; break;    /* stumaxl --> ldumaxl.  */
+    case 1176: value = 1122; break;    /* stuminb --> lduminb.  */
+    case 1177: value = 1123; break;    /* stuminh --> lduminh.  */
+    case 1178: value = 1124; break;    /* stumin --> ldumin.  */
+    case 1179: value = 1126; break;    /* stuminlb --> lduminlb.  */
+    case 1180: value = 1129; break;    /* stuminlh --> lduminlh.  */
+    case 1181: value = 1132; break;    /* stuminl --> lduminl.  */
+    case 1183: value = 1182; break;    /* mov --> movn.  */
+    case 1185: value = 1184; break;    /* mov --> movz.  */
+    case 1238: value = 1237; break;    /* autibsp --> autibz.  */
+    case 1237: value = 1236; break;    /* autibz --> autiasp.  */
+    case 1236: value = 1235; break;    /* autiasp --> autiaz.  */
+    case 1235: value = 1234; break;    /* autiaz --> pacibsp.  */
+    case 1234: value = 1233; break;    /* pacibsp --> pacibz.  */
+    case 1233: value = 1232; break;    /* pacibz --> paciasp.  */
+    case 1232: value = 1231; break;    /* paciasp --> paciaz.  */
+    case 1231: value = 1211; break;    /* paciaz --> tsb.  */
+    case 1211: value = 1210; break;    /* tsb --> psb.  */
+    case 1210: value = 1209; break;    /* psb --> esb.  */
+    case 1209: value = 1208; break;    /* esb --> autib1716.  */
+    case 1208: value = 1207; break;    /* autib1716 --> autia1716.  */
+    case 1207: value = 1206; break;    /* autia1716 --> pacib1716.  */
+    case 1206: value = 1205; break;    /* pacib1716 --> pacia1716.  */
+    case 1205: value = 1204; break;    /* pacia1716 --> xpaclri.  */
+    case 1204: value = 1202; break;    /* xpaclri --> sevl.  */
+    case 1202: value = 1201; break;    /* sevl --> sev.  */
+    case 1201: value = 1200; break;    /* sev --> wfi.  */
+    case 1200: value = 1199; break;    /* wfi --> wfe.  */
+    case 1199: value = 1198; break;    /* wfe --> yield.  */
+    case 1198: value = 1197; break;    /* yield --> bti.  */
+    case 1197: value = 1196; break;    /* bti --> csdb.  */
+    case 1196: value = 1195; break;    /* csdb --> nop.  */
+    case 1195: value = 1194; break;    /* nop --> hint.  */
+    case 1215: value = 1214; break;    /* pssbb --> ssbb.  */
+    case 1214: value = 1213; break;    /* ssbb --> dsb.  */
+    case 1226: value = 1225; break;    /* cpp --> dvp.  */
+    case 1225: value = 1224; break;    /* dvp --> cfp.  */
+    case 1224: value = 1223; break;    /* cfp --> tlbi.  */
+    case 1223: value = 1222; break;    /* tlbi --> ic.  */
+    case 1222: value = 1221; break;    /* ic --> dc.  */
+    case 1221: value = 1220; break;    /* dc --> at.  */
+    case 1220: value = 1219; break;    /* at --> sys.  */
+    case 2036: value = 1286; break;    /* bic --> and.  */
+    case 1269: value = 1288; break;    /* mov --> and.  */
+    case 1273: value = 1289; break;    /* movs --> ands.  */
+    case 2037: value = 1324; break;    /* cmple --> cmpge.  */
+    case 2040: value = 1327; break;    /* cmplt --> cmpgt.  */
+    case 2038: value = 1329; break;    /* cmplo --> cmphi.  */
+    case 2039: value = 1332; break;    /* cmpls --> cmphs.  */
+    case 1266: value = 1354; break;    /* mov --> cpy.  */
+    case 1268: value = 1355; break;    /* mov --> cpy.  */
+    case 2047: value = 1271; break;    /* fmov --> mov.  */
+    case 1271: value = 1356; break;    /* mov --> cpy.  */
+    case 1261: value = 1368; break;    /* mov --> dup.  */
+    case 1263: value = 1260; break;    /* mov --> mov.  */
+    case 1260: value = 1369; break;    /* mov --> dup.  */
+    case 2046: value = 1265; break;    /* fmov --> mov.  */
+    case 1265: value = 1370; break;    /* mov --> dup.  */
+    case 1264: value = 1371; break;    /* mov --> dupm.  */
+    case 2041: value = 1373; break;    /* eon --> eor.  */
+    case 1274: value = 1375; break;    /* not --> eor.  */
+    case 1275: value = 1376; break;    /* nots --> eors.  */
+    case 2042: value = 1381; break;    /* facle --> facge.  */
+    case 2043: value = 1382; break;    /* faclt --> facgt.  */
+    case 2044: value = 1395; break;    /* fcmle --> fcmge.  */
+    case 2045: value = 1397; break;    /* fcmlt --> fcmgt.  */
+    case 1258: value = 1403; break;    /* fmov --> fcpy.  */
+    case 1257: value = 1426; break;    /* fmov --> fdup.  */
+    case 1259: value = 1757; break;    /* mov --> orr.  */
+    case 2048: value = 1758; break;    /* orn --> orr.  */
+    case 1262: value = 1760; break;    /* mov --> orr.  */
+    case 1272: value = 1761; break;    /* movs --> orrs.  */
+    case 1267: value = 1823; break;    /* mov --> sel.  */
+    case 1270: value = 1824; break;    /* mov --> sel.  */
     default: return NULL;
     }
 
     default: return NULL;
     }
 
@@ -19873,14 +23763,14 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 5:
     case 6:
     case 7:
     case 5:
     case 6:
     case 7:
-    case 9:
+    case 8:
     case 10:
     case 11:
     case 10:
     case 11:
-    case 15:
+    case 12:
     case 16:
     case 17:
     case 18:
     case 16:
     case 17:
     case 18:
-    case 20:
+    case 19:
     case 21:
     case 22:
     case 23:
     case 21:
     case 22:
     case 23:
@@ -19890,57 +23780,57 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 27:
     case 28:
     case 29:
     case 27:
     case 28:
     case 29:
-    case 157:
-    case 158:
-    case 159:
-    case 160:
-    case 161:
-    case 162:
-    case 163:
+    case 30:
     case 164:
     case 165:
     case 166:
     case 164:
     case 165:
     case 166:
-    case 179:
-    case 180:
-    case 181:
-    case 182:
-    case 183:
-    case 184:
-    case 185:
-    case 186:
-    case 187:
+    case 167:
+    case 168:
+    case 169:
+    case 170:
+    case 171:
+    case 172:
+    case 173:
+    case 188:
+    case 189:
+    case 190:
     case 191:
     case 191:
+    case 192:
+    case 193:
     case 194:
     case 194:
+    case 195:
+    case 196:
+    case 202:
+    case 205:
       return aarch64_ext_regno (self, info, code, inst, errors);
       return aarch64_ext_regno (self, info, code, inst, errors);
-    case 8:
+    case 9:
       return aarch64_ext_regrt_sysins (self, info, code, inst, errors);
       return aarch64_ext_regrt_sysins (self, info, code, inst, errors);
-    case 12:
-      return aarch64_ext_regno_pair (self, info, code, inst, errors);
     case 13:
     case 13:
-      return aarch64_ext_reg_extended (self, info, code, inst, errors);
+      return aarch64_ext_regno_pair (self, info, code, inst, errors);
     case 14:
     case 14:
+      return aarch64_ext_reg_extended (self, info, code, inst, errors);
+    case 15:
       return aarch64_ext_reg_shifted (self, info, code, inst, errors);
       return aarch64_ext_reg_shifted (self, info, code, inst, errors);
-    case 19:
+    case 20:
       return aarch64_ext_ft (self, info, code, inst, errors);
       return aarch64_ext_ft (self, info, code, inst, errors);
-    case 30:
     case 31:
     case 32:
     case 33:
     case 31:
     case 32:
     case 33:
-    case 196:
-      return aarch64_ext_reglane (self, info, code, inst, errors);
     case 34:
     case 34:
-      return aarch64_ext_reglist (self, info, code, inst, errors);
+    case 208:
+      return aarch64_ext_reglane (self, info, code, inst, errors);
     case 35:
     case 35:
-      return aarch64_ext_ldst_reglist (self, info, code, inst, errors);
+      return aarch64_ext_reglist (self, info, code, inst, errors);
     case 36:
     case 36:
-      return aarch64_ext_ldst_reglist_r (self, info, code, inst, errors);
+      return aarch64_ext_ldst_reglist (self, info, code, inst, errors);
     case 37:
     case 37:
-      return aarch64_ext_ldst_elemlist (self, info, code, inst, errors);
+      return aarch64_ext_ldst_reglist_r (self, info, code, inst, errors);
     case 38:
     case 38:
+      return aarch64_ext_ldst_elemlist (self, info, code, inst, errors);
     case 39:
     case 40:
     case 41:
     case 39:
     case 40:
     case 41:
-    case 51:
+    case 42:
     case 52:
     case 53:
     case 54:
     case 52:
     case 53:
     case 54:
@@ -19956,109 +23846,112 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 64:
     case 65:
     case 66:
     case 64:
     case 65:
     case 66:
-    case 77:
-    case 78:
+    case 67:
+    case 68:
     case 79:
     case 80:
     case 81:
     case 79:
     case 80:
     case 81:
-    case 154:
-    case 156:
-    case 171:
-    case 172:
-    case 173:
-    case 174:
-    case 175:
-    case 176:
-    case 177:
-    case 178:
+    case 82:
+    case 83:
+    case 161:
+    case 163:
+    case 180:
+    case 181:
+    case 182:
+    case 183:
+    case 184:
+    case 185:
+    case 186:
+    case 187:
+    case 207:
       return aarch64_ext_imm (self, info, code, inst, errors);
       return aarch64_ext_imm (self, info, code, inst, errors);
-    case 42:
     case 43:
     case 43:
-      return aarch64_ext_advsimd_imm_shift (self, info, code, inst, errors);
     case 44:
     case 44:
+      return aarch64_ext_advsimd_imm_shift (self, info, code, inst, errors);
     case 45:
     case 46:
     case 45:
     case 46:
-      return aarch64_ext_advsimd_imm_modified (self, info, code, inst, errors);
     case 47:
     case 47:
+      return aarch64_ext_advsimd_imm_modified (self, info, code, inst, errors);
+    case 48:
       return aarch64_ext_shll_imm (self, info, code, inst, errors);
       return aarch64_ext_shll_imm (self, info, code, inst, errors);
-    case 50:
-    case 145:
+    case 51:
+    case 151:
       return aarch64_ext_fpimm (self, info, code, inst, errors);
       return aarch64_ext_fpimm (self, info, code, inst, errors);
-    case 67:
-    case 152:
+    case 69:
+    case 159:
       return aarch64_ext_limm (self, info, code, inst, errors);
       return aarch64_ext_limm (self, info, code, inst, errors);
-    case 68:
+    case 70:
       return aarch64_ext_aimm (self, info, code, inst, errors);
       return aarch64_ext_aimm (self, info, code, inst, errors);
-    case 69:
+    case 71:
       return aarch64_ext_imm_half (self, info, code, inst, errors);
       return aarch64_ext_imm_half (self, info, code, inst, errors);
-    case 70:
-      return aarch64_ext_fbits (self, info, code, inst, errors);
     case 72:
     case 72:
-    case 73:
-    case 150:
-      return aarch64_ext_imm_rotate2 (self, info, code, inst, errors);
+      return aarch64_ext_fbits (self, info, code, inst, errors);
     case 74:
     case 74:
-    case 149:
-      return aarch64_ext_imm_rotate1 (self, info, code, inst, errors);
     case 75:
     case 75:
+    case 156:
+      return aarch64_ext_imm_rotate2 (self, info, code, inst, errors);
     case 76:
     case 76:
+    case 155:
+    case 157:
+      return aarch64_ext_imm_rotate1 (self, info, code, inst, errors);
+    case 77:
+    case 78:
       return aarch64_ext_cond (self, info, code, inst, errors);
       return aarch64_ext_cond (self, info, code, inst, errors);
-    case 82:
-    case 89:
-      return aarch64_ext_addr_simple (self, info, code, inst, errors);
-    case 83:
-      return aarch64_ext_addr_regoff (self, info, code, inst, errors);
     case 84:
     case 84:
+    case 93:
+      return aarch64_ext_addr_simple (self, info, code, inst, errors);
     case 85:
     case 85:
+      return aarch64_ext_addr_regoff (self, info, code, inst, errors);
     case 86:
     case 86:
-      return aarch64_ext_addr_simm (self, info, code, inst, errors);
     case 87:
     case 87:
-      return aarch64_ext_addr_simm10 (self, info, code, inst, errors);
     case 88:
     case 88:
-      return aarch64_ext_addr_uimm12 (self, info, code, inst, errors);
     case 90:
     case 90:
-      return aarch64_ext_addr_offset (self, info, code, inst, errors);
-    case 91:
-      return aarch64_ext_simd_addr_post (self, info, code, inst, errors);
     case 92:
     case 92:
-      return aarch64_ext_sysreg (self, info, code, inst, errors);
-    case 93:
-      return aarch64_ext_pstatefield (self, info, code, inst, errors);
+      return aarch64_ext_addr_simm (self, info, code, inst, errors);
+    case 89:
+      return aarch64_ext_addr_simm10 (self, info, code, inst, errors);
+    case 91:
+      return aarch64_ext_addr_uimm12 (self, info, code, inst, errors);
     case 94:
     case 94:
+      return aarch64_ext_addr_offset (self, info, code, inst, errors);
     case 95:
     case 95:
+      return aarch64_ext_simd_addr_post (self, info, code, inst, errors);
     case 96:
     case 96:
+      return aarch64_ext_sysreg (self, info, code, inst, errors);
     case 97:
     case 97:
+      return aarch64_ext_pstatefield (self, info, code, inst, errors);
     case 98:
     case 98:
-      return aarch64_ext_sysins_op (self, info, code, inst, errors);
     case 99:
     case 100:
     case 99:
     case 100:
-      return aarch64_ext_barrier (self, info, code, inst, errors);
     case 101:
     case 101:
-      return aarch64_ext_prfop (self, info, code, inst, errors);
     case 102:
     case 102:
+      return aarch64_ext_sysins_op (self, info, code, inst, errors);
     case 103:
     case 103:
-      return aarch64_ext_hint (self, info, code, inst, errors);
     case 104:
     case 104:
-      return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors);
+      return aarch64_ext_barrier (self, info, code, inst, errors);
     case 105:
     case 105:
+      return aarch64_ext_prfop (self, info, code, inst, errors);
     case 106:
     case 106:
+      return aarch64_ext_none (self, info, code, inst, errors);
     case 107:
     case 107:
+      return aarch64_ext_hint (self, info, code, inst, errors);
     case 108:
     case 108:
-      return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors);
     case 109:
     case 109:
-      return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors);
+      return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors);
     case 110:
     case 110:
-      return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors);
     case 111:
     case 112:
     case 113:
     case 111:
     case 112:
     case 113:
+      return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors);
     case 114:
     case 114:
-      return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors);
+      return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors);
     case 115:
     case 115:
+      return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors);
     case 116:
     case 117:
     case 118:
     case 119:
     case 116:
     case 117:
     case 118:
     case 119:
+      return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors);
     case 120:
     case 121:
     case 122:
     case 120:
     case 121:
     case 122:
@@ -20067,57 +23960,67 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 125:
     case 126:
     case 127:
     case 125:
     case 126:
     case 127:
-      return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors);
     case 128:
     case 129:
     case 130:
     case 131:
     case 132:
     case 133:
     case 128:
     case 129:
     case 130:
     case 131:
     case 132:
     case 133:
+      return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors);
     case 134:
     case 135:
     case 134:
     case 135:
-      return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors);
     case 136:
     case 137:
     case 138:
     case 139:
     case 136:
     case 137:
     case 138:
     case 139:
-      return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors);
     case 140:
     case 140:
-      return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors);
     case 141:
     case 141:
-      return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors);
+      return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors);
     case 142:
     case 142:
-      return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors);
     case 143:
     case 143:
-      return aarch64_ext_sve_aimm (self, info, code, inst, errors);
     case 144:
     case 144:
-      return aarch64_ext_sve_asimm (self, info, code, inst, errors);
+    case 145:
+      return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors);
     case 146:
     case 146:
-      return aarch64_ext_sve_float_half_one (self, info, code, inst, errors);
+      return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors);
     case 147:
     case 147:
-      return aarch64_ext_sve_float_half_two (self, info, code, inst, errors);
+      return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors);
     case 148:
     case 148:
+      return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors);
+    case 149:
+      return aarch64_ext_sve_aimm (self, info, code, inst, errors);
+    case 150:
+      return aarch64_ext_sve_asimm (self, info, code, inst, errors);
+    case 152:
+      return aarch64_ext_sve_float_half_one (self, info, code, inst, errors);
+    case 153:
+      return aarch64_ext_sve_float_half_two (self, info, code, inst, errors);
+    case 154:
       return aarch64_ext_sve_float_zero_one (self, info, code, inst, errors);
       return aarch64_ext_sve_float_zero_one (self, info, code, inst, errors);
-    case 151:
+    case 158:
       return aarch64_ext_inv_limm (self, info, code, inst, errors);
       return aarch64_ext_inv_limm (self, info, code, inst, errors);
-    case 153:
+    case 160:
       return aarch64_ext_sve_limm_mov (self, info, code, inst, errors);
       return aarch64_ext_sve_limm_mov (self, info, code, inst, errors);
-    case 155:
+    case 162:
       return aarch64_ext_sve_scale (self, info, code, inst, errors);
       return aarch64_ext_sve_scale (self, info, code, inst, errors);
-    case 167:
-    case 168:
+    case 174:
+    case 175:
+    case 176:
       return aarch64_ext_sve_shlimm (self, info, code, inst, errors);
       return aarch64_ext_sve_shlimm (self, info, code, inst, errors);
-    case 169:
-    case 170:
+    case 177:
+    case 178:
+    case 179:
       return aarch64_ext_sve_shrimm (self, info, code, inst, errors);
       return aarch64_ext_sve_shrimm (self, info, code, inst, errors);
-    case 188:
-    case 189:
-    case 190:
+    case 197:
+    case 198:
+    case 199:
+    case 200:
+    case 201:
       return aarch64_ext_sve_quad_index (self, info, code, inst, errors);
       return aarch64_ext_sve_quad_index (self, info, code, inst, errors);
-    case 192:
+    case 203:
       return aarch64_ext_sve_index (self, info, code, inst, errors);
       return aarch64_ext_sve_index (self, info, code, inst, errors);
-    case 193:
-    case 195:
+    case 204:
+    case 206:
       return aarch64_ext_sve_reglist (self, info, code, inst, errors);
     default: assert (0); abort ();
     }
       return aarch64_ext_sve_reglist (self, info, code, inst, errors);
     default: assert (0); abort ();
     }
This page took 0.467674 seconds and 4 git commands to generate.