x86: correct abort check
[deliverable/binutils-gdb.git] / opcodes / aarch64-dis-2.c
index 16dddc57b4ea94f812c2358ab71c2e4b44bfd30a..224bb450f0478e6794e07f6c6556543cc0f58688 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-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2017 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.
@@ -38,17 +38,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                     {
                       /* 33222222222211111111110000000000
                          10987654321098765432109876543210
                     {
                       /* 33222222222211111111110000000000
                          10987654321098765432109876543210
-                         xxxxxxxxxxxxxxxxxxxxxxxx0000xxx0
+                         0xxx0000xxxxxxxxxxxxxxxxxxxxxxxx
                          adr.  */
                          adr.  */
-                      return 1134;
+                      return 1155;
                     }
                   else
                     {
                       /* 33222222222211111111110000000000
                          10987654321098765432109876543210
                     }
                   else
                     {
                       /* 33222222222211111111110000000000
                          10987654321098765432109876543210
-                         xxxxxxxxxxxxxxxxxxxxxxxx0000xxx1
+                         1xxx0000xxxxxxxxxxxxxxxxxxxxxxxx
                          adrp.  */
                          adrp.  */
-                      return 1135;
+                      return 1156;
                     }
                 }
               else
                     }
                 }
               else
@@ -59,7 +59,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx1000x00x
+                             x00x0001xxxxxxxxxxxxxxxxxxxxxxxx
                              add.  */
                           return 12;
                         }
                              add.  */
                           return 12;
                         }
@@ -67,7 +67,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx1000x01x
+                             x10x0001xxxxxxxxxxxxxxxxxxxxxxxx
                              sub.  */
                           return 16;
                         }
                              sub.  */
                           return 16;
                         }
@@ -78,7 +78,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx1000x10x
+                             x01x0001xxxxxxxxxxxxxxxxxxxxxxxx
                              adds.  */
                           return 14;
                         }
                              adds.  */
                           return 14;
                         }
@@ -86,7 +86,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx1000x11x
+                             x11x0001xxxxxxxxxxxxxxxxxxxxxxxx
                              subs.  */
                           return 17;
                         }
                              subs.  */
                           return 17;
                         }
@@ -113,26 +113,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx000x0010000
+                                                 0000100x000xxxxx0xxxxxxxxxxxxxxx
                                                  stxrb.  */
                                                  stxrb.  */
-                                              return 892;
+                                              return 910;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx000x0010010
+                                                 0100100x000xxxxx0xxxxxxxxxxxxxxx
                                                  stxrh.  */
                                                  stxrh.  */
-                                              return 898;
+                                              return 916;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx000x00100x1
+                                             1x00100x000xxxxx0xxxxxxxxxxxxxxx
                                              stxr.  */
                                              stxr.  */
-                                          return 904;
+                                          return 922;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -141,17 +141,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx100x00100x0
+                                             0x00100x001xxxxx0xxxxxxxxxxxxxxx
                                              casp.  */
                                              casp.  */
-                                          return 969;
+                                          return 990;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx100x00100x1
+                                             1x00100x001xxxxx0xxxxxxxxxxxxxxx
                                              stxp.  */
                                              stxp.  */
-                                          return 906;
+                                          return 924;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -165,26 +165,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx000x0010000
+                                                 0000100x000xxxxx1xxxxxxxxxxxxxxx
                                                  stlxrb.  */
                                                  stlxrb.  */
-                                              return 893;
+                                              return 911;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx000x0010010
+                                                 0100100x000xxxxx1xxxxxxxxxxxxxxx
                                                  stlxrh.  */
                                                  stlxrh.  */
-                                              return 899;
+                                              return 917;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx000x00100x1
+                                             1x00100x000xxxxx1xxxxxxxxxxxxxxx
                                              stlxr.  */
                                              stlxr.  */
-                                          return 905;
+                                          return 923;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -193,17 +193,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx100x00100x0
+                                             0x00100x001xxxxx1xxxxxxxxxxxxxxx
                                              caspl.  */
                                              caspl.  */
-                                          return 971;
+                                          return 992;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx100x00100x1
+                                             1x00100x001xxxxx1xxxxxxxxxxxxxxx
                                              stlxp.  */
                                              stlxp.  */
-                                          return 907;
+                                          return 925;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -212,9 +212,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxx00x00101xx
+                                 xx10100x00xxxxxxxxxxxxxxxxxxxxxx
                                  stnp.  */
                                  stnp.  */
-                              return 920;
+                              return 941;
                             }
                         }
                       else
                             }
                         }
                       else
@@ -229,17 +229,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx001x00100x0
+                                             0x00100x100xxxxx0xxxxxxxxxxxxxxx
                                              stllrb.  */
                                              stllrb.  */
-                                          return 918;
+                                          return 939;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx001x00100x1
+                                             1x00100x100xxxxx0xxxxxxxxxxxxxxx
                                              stllr.  */
                                              stllr.  */
-                                          return 917;
+                                          return 938;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -250,26 +250,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx101x0010000
+                                                 0000100x101xxxxx0xxxxxxxxxxxxxxx
                                                  casb.  */
                                                  casb.  */
-                                              return 957;
+                                              return 978;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx101x0010010
+                                                 0100100x101xxxxx0xxxxxxxxxxxxxxx
                                                  cash.  */
                                                  cash.  */
-                                              return 958;
+                                              return 979;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx101x00100x1
+                                             1x00100x101xxxxx0xxxxxxxxxxxxxxx
                                              cas.  */
                                              cas.  */
-                                          return 959;
+                                          return 980;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -283,26 +283,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx001x0010000
+                                                 0000100x100xxxxx1xxxxxxxxxxxxxxx
                                                  stlrb.  */
                                                  stlrb.  */
-                                              return 896;
+                                              return 914;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx001x0010010
+                                                 0100100x100xxxxx1xxxxxxxxxxxxxxx
                                                  stlrh.  */
                                                  stlrh.  */
-                                              return 902;
+                                              return 920;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx001x00100x1
+                                             1x00100x100xxxxx1xxxxxxxxxxxxxxx
                                              stlr.  */
                                              stlr.  */
-                                          return 912;
+                                          return 930;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -313,26 +313,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx101x0010000
+                                                 0000100x101xxxxx1xxxxxxxxxxxxxxx
                                                  caslb.  */
                                                  caslb.  */
-                                              return 961;
+                                              return 982;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx101x0010010
+                                                 0100100x101xxxxx1xxxxxxxxxxxxxxx
                                                  caslh.  */
                                                  caslh.  */
-                                              return 964;
+                                              return 985;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx101x00100x1
+                                             1x00100x101xxxxx1xxxxxxxxxxxxxxx
                                              casl.  */
                                              casl.  */
-                                          return 967;
+                                          return 988;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -341,9 +341,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxx01x00101xx
+                                 xx10100x10xxxxxxxxxxxxxxxxxxxxxx
                                  stp.  */
                                  stp.  */
-                              return 929;
+                              return 950;
                             }
                         }
                     }
                             }
                         }
                     }
@@ -363,26 +363,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx010x0010000
+                                                 0000100x010xxxxx0xxxxxxxxxxxxxxx
                                                  ldxrb.  */
                                                  ldxrb.  */
-                                              return 894;
+                                              return 912;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx010x0010010
+                                                 0100100x010xxxxx0xxxxxxxxxxxxxxx
                                                  ldxrh.  */
                                                  ldxrh.  */
-                                              return 900;
+                                              return 918;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx010x00100x1
+                                             1x00100x010xxxxx0xxxxxxxxxxxxxxx
                                              ldxr.  */
                                              ldxr.  */
-                                          return 908;
+                                          return 926;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -391,17 +391,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx110x00100x0
+                                             0x00100x011xxxxx0xxxxxxxxxxxxxxx
                                              caspa.  */
                                              caspa.  */
-                                          return 970;
+                                          return 991;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx110x00100x1
+                                             1x00100x011xxxxx0xxxxxxxxxxxxxxx
                                              ldxp.  */
                                              ldxp.  */
-                                          return 910;
+                                          return 928;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -415,26 +415,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx010x0010000
+                                                 0000100x010xxxxx1xxxxxxxxxxxxxxx
                                                  ldaxrb.  */
                                                  ldaxrb.  */
-                                              return 895;
+                                              return 913;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx010x0010010
+                                                 0100100x010xxxxx1xxxxxxxxxxxxxxx
                                                  ldaxrh.  */
                                                  ldaxrh.  */
-                                              return 901;
+                                              return 919;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx010x00100x1
+                                             1x00100x010xxxxx1xxxxxxxxxxxxxxx
                                              ldaxr.  */
                                              ldaxr.  */
-                                          return 909;
+                                          return 927;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -443,17 +443,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx110x00100x0
+                                             0x00100x011xxxxx1xxxxxxxxxxxxxxx
                                              caspal.  */
                                              caspal.  */
-                                          return 972;
+                                          return 993;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx110x00100x1
+                                             1x00100x011xxxxx1xxxxxxxxxxxxxxx
                                              ldaxp.  */
                                              ldaxp.  */
-                                          return 911;
+                                          return 929;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -464,17 +464,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx10x001010x
+                                     x010100x01xxxxxxxxxxxxxxxxxxxxxx
                                      ldnp.  */
                                      ldnp.  */
-                                  return 921;
+                                  return 942;
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx10x001011x
+                                     x110100x01xxxxxxxxxxxxxxxxxxxxxx
                                      ldpsw.  */
                                      ldpsw.  */
-                                  return 928;
+                                  return 949;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -492,26 +492,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx011x0010000
+                                                 0000100x110xxxxx0xxxxxxxxxxxxxxx
                                                  ldlarb.  */
                                                  ldlarb.  */
-                                              return 915;
+                                              return 936;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx011x0010010
+                                                 0100100x110xxxxx0xxxxxxxxxxxxxxx
                                                  ldlarh.  */
                                                  ldlarh.  */
-                                              return 916;
+                                              return 937;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx011x00100x1
+                                             1x00100x110xxxxx0xxxxxxxxxxxxxxx
                                              ldlar.  */
                                              ldlar.  */
-                                          return 914;
+                                          return 935;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -522,26 +522,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx111x0010000
+                                                 0000100x111xxxxx0xxxxxxxxxxxxxxx
                                                  casab.  */
                                                  casab.  */
-                                              return 960;
+                                              return 981;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx0xxxxx111x0010010
+                                                 0100100x111xxxxx0xxxxxxxxxxxxxxx
                                                  casah.  */
                                                  casah.  */
-                                              return 963;
+                                              return 984;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxxx111x00100x1
+                                             1x00100x111xxxxx0xxxxxxxxxxxxxxx
                                              casa.  */
                                              casa.  */
-                                          return 966;
+                                          return 987;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -555,26 +555,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx011x0010000
+                                                 0000100x110xxxxx1xxxxxxxxxxxxxxx
                                                  ldarb.  */
                                                  ldarb.  */
-                                              return 897;
+                                              return 915;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx011x0010010
+                                                 0100100x110xxxxx1xxxxxxxxxxxxxxx
                                                  ldarh.  */
                                                  ldarh.  */
-                                              return 903;
+                                              return 921;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx011x00100x1
+                                             1x00100x110xxxxx1xxxxxxxxxxxxxxx
                                              ldar.  */
                                              ldar.  */
-                                          return 913;
+                                          return 931;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -585,26 +585,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx111x0010000
+                                                 0000100x111xxxxx1xxxxxxxxxxxxxxx
                                                  casalb.  */
                                                  casalb.  */
-                                              return 962;
+                                              return 983;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxx1xxxxx111x0010010
+                                                 0100100x111xxxxx1xxxxxxxxxxxxxxx
                                                  casalh.  */
                                                  casalh.  */
-                                              return 965;
+                                              return 986;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxxx111x00100x1
+                                             1x00100x111xxxxx1xxxxxxxxxxxxxxx
                                              casal.  */
                                              casal.  */
-                                          return 968;
+                                          return 989;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -615,17 +615,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx11x001010x
+                                     x010100x11xxxxxxxxxxxxxxxxxxxxxx
                                      ldp.  */
                                      ldp.  */
-                                  return 930;
+                                  return 951;
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx11x001011x
+                                     x110100x11xxxxxxxxxxxxxxxxxxxxxx
                                      ldpsw.  */
                                      ldpsw.  */
-                                  return 933;
+                                  return 954;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -641,9 +641,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxxx000110x0
+                                 0x011000xxxxxxxxxxxxxxxxxxxxxxxx
                                  ldr.  */
                                  ldr.  */
-                              return 934;
+                              return 955;
                             }
                           else
                             {
                             }
                           else
                             {
@@ -651,17 +651,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxxx00011001
+                                     10011000xxxxxxxxxxxxxxxxxxxxxxxx
                                      ldrsw.  */
                                      ldrsw.  */
-                                  return 936;
+                                  return 957;
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxxx00011011
+                                     11011000xxxxxxxxxxxxxxxxxxxxxxxx
                                      prfm.  */
                                      prfm.  */
-                                  return 937;
+                                  return 958;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -683,26 +683,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00xxxxxxxxx00000011100
+                                                         00111000000xxxxxxxxx00xxxxxxxxxx
                                                          sturb.  */
                                                          sturb.  */
-                                                      return 880;
+                                                      return 896;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00xxxxxxxxx00000011110
+                                                         01111000000xxxxxxxxx00xxxxxxxxxx
                                                          sturh.  */
                                                          sturh.  */
-                                                      return 885;
+                                                      return 901;
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx000000111x1
+                                                     1x111000000xxxxxxxxx00xxxxxxxxxx
                                                      stur.  */
                                                      stur.  */
-                                                  return 888;
+                                                  return 904;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -713,26 +713,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00xxxxxxxxx01000011100
+                                                         00111000010xxxxxxxxx00xxxxxxxxxx
                                                          ldurb.  */
                                                          ldurb.  */
-                                                      return 881;
+                                                      return 897;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00xxxxxxxxx01000011110
+                                                         01111000010xxxxxxxxx00xxxxxxxxxx
                                                          ldurh.  */
                                                          ldurh.  */
-                                                      return 886;
+                                                      return 902;
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx010000111x1
+                                                     1x111000010xxxxxxxxx00xxxxxxxxxx
                                                      ldur.  */
                                                      ldur.  */
-                                                  return 889;
+                                                  return 905;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -744,17 +744,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0x100011100
+                                                     001110001x0xxxxxxxxx00xxxxxxxxxx
                                                      ldursb.  */
                                                      ldursb.  */
-                                                  return 882;
+                                                  return 898;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0x100011101
+                                                     101110001x0xxxxxxxxx00xxxxxxxxxx
                                                      ldursw.  */
                                                      ldursw.  */
-                                                  return 890;
+                                                  return 906;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -763,17 +763,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0x100011110
+                                                     011110001x0xxxxxxxxx00xxxxxxxxxx
                                                      ldursh.  */
                                                      ldursh.  */
-                                                  return 887;
+                                                  return 903;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0x100011111
+                                                     111110001x0xxxxxxxxx00xxxxxxxxxx
                                                      prfum.  */
                                                      prfum.  */
-                                                  return 891;
+                                                  return 907;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -798,26 +798,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx10000011100
+                                                                         00111000001xxxxx000000xxxxxxxxxx
                                                                          ldaddb.  */
                                                                          ldaddb.  */
-                                                                      return 985;
+                                                                      return 1006;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx10000011110
+                                                                         01111000001xxxxx000000xxxxxxxxxx
                                                                          ldaddh.  */
                                                                          ldaddh.  */
-                                                                      return 986;
+                                                                      return 1007;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000000xxxxx100000111x1
+                                                                     1x111000001xxxxx000000xxxxxxxxxx
                                                                      ldadd.  */
                                                                      ldadd.  */
-                                                                  return 987;
+                                                                  return 1008;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -828,26 +828,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx10100011100
+                                                                         00111000101xxxxx000000xxxxxxxxxx
                                                                          ldaddab.  */
                                                                          ldaddab.  */
-                                                                      return 988;
+                                                                      return 1009;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx10100011110
+                                                                         01111000101xxxxx000000xxxxxxxxxx
                                                                          ldaddah.  */
                                                                          ldaddah.  */
-                                                                      return 991;
+                                                                      return 1012;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000000xxxxx101000111x1
+                                                                     1x111000101xxxxx000000xxxxxxxxxx
                                                                      ldadda.  */
                                                                      ldadda.  */
-                                                                  return 994;
+                                                                  return 1015;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -861,26 +861,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx11000011100
+                                                                         00111000011xxxxx000000xxxxxxxxxx
                                                                          ldaddlb.  */
                                                                          ldaddlb.  */
-                                                                      return 989;
+                                                                      return 1010;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx11000011110
+                                                                         01111000011xxxxx000000xxxxxxxxxx
                                                                          ldaddlh.  */
                                                                          ldaddlh.  */
-                                                                      return 992;
+                                                                      return 1013;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000000xxxxx110000111x1
+                                                                     1x111000011xxxxx000000xxxxxxxxxx
                                                                      ldaddl.  */
                                                                      ldaddl.  */
-                                                                  return 995;
+                                                                  return 1016;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -891,26 +891,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx11100011100
+                                                                         00111000111xxxxx000000xxxxxxxxxx
                                                                          ldaddalb.  */
                                                                          ldaddalb.  */
-                                                                      return 990;
+                                                                      return 1011;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000xxxxx11100011110
+                                                                         01111000111xxxxx000000xxxxxxxxxx
                                                                          ldaddalh.  */
                                                                          ldaddalh.  */
-                                                                      return 993;
+                                                                      return 1014;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000000xxxxx111000111x1
+                                                                     1x111000111xxxxx000000xxxxxxxxxx
                                                                      ldaddal.  */
                                                                      ldaddal.  */
-                                                                  return 996;
+                                                                  return 1017;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -927,26 +927,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx10000011100
+                                                                         00111000001xxxxx100000xxxxxxxxxx
                                                                          swpb.  */
                                                                          swpb.  */
-                                                                      return 973;
+                                                                      return 994;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx10000011110
+                                                                         01111000001xxxxx100000xxxxxxxxxx
                                                                          swph.  */
                                                                          swph.  */
-                                                                      return 974;
+                                                                      return 995;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000001xxxxx100000111x1
+                                                                     1x111000001xxxxx100000xxxxxxxxxx
                                                                      swp.  */
                                                                      swp.  */
-                                                                  return 975;
+                                                                  return 996;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -957,26 +957,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx10100011100
+                                                                         00111000101xxxxx100000xxxxxxxxxx
                                                                          swpab.  */
                                                                          swpab.  */
-                                                                      return 976;
+                                                                      return 997;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx10100011110
+                                                                         01111000101xxxxx100000xxxxxxxxxx
                                                                          swpah.  */
                                                                          swpah.  */
-                                                                      return 979;
+                                                                      return 1000;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000001xxxxx101000111x1
+                                                                     1x111000101xxxxx100000xxxxxxxxxx
                                                                      swpa.  */
                                                                      swpa.  */
-                                                                  return 982;
+                                                                  return 1003;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -990,26 +990,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx11000011100
+                                                                         00111000011xxxxx100000xxxxxxxxxx
                                                                          swplb.  */
                                                                          swplb.  */
-                                                                      return 977;
+                                                                      return 998;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx11000011110
+                                                                         01111000011xxxxx100000xxxxxxxxxx
                                                                          swplh.  */
                                                                          swplh.  */
-                                                                      return 980;
+                                                                      return 1001;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000001xxxxx110000111x1
+                                                                     1x111000011xxxxx100000xxxxxxxxxx
                                                                      swpl.  */
                                                                      swpl.  */
-                                                                  return 983;
+                                                                  return 1004;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -1020,26 +1020,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx11100011100
+                                                                         00111000111xxxxx100000xxxxxxxxxx
                                                                          swpalb.  */
                                                                          swpalb.  */
-                                                                      return 978;
+                                                                      return 999;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000001xxxxx11100011110
+                                                                         01111000111xxxxx100000xxxxxxxxxx
                                                                          swpalh.  */
                                                                          swpalh.  */
-                                                                      return 981;
+                                                                      return 1002;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx000001xxxxx111000111x1
+                                                                     1x111000111xxxxx100000xxxxxxxxxx
                                                                      swpal.  */
                                                                      swpal.  */
-                                                                  return 984;
+                                                                  return 1005;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -1047,131 +1047,164 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  if (((word >> 15) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      if (((word >> 22) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 31) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 30) & 0x1) == 0)
+                                                              if (((word >> 31) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx00001xxxxxx10000011100
-                                                                     ldsmaxb.  */
-                                                                  return 1033;
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         00111000001xxxxx010000xxxxxxxxxx
+                                                                         ldsmaxb.  */
+                                                                      return 1054;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         01111000001xxxxx010000xxxxxxxxxx
+                                                                         ldsmaxh.  */
+                                                                      return 1055;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00001xxxxxx10000011110
-                                                                     ldsmaxh.  */
-                                                                  return 1034;
+                                                                     1x111000001xxxxx010000xxxxxxxxxx
+                                                                     ldsmax.  */
+                                                                  return 1056;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx00001xxxxxx100000111x1
-                                                                 ldsmax.  */
-                                                              return 1035;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 31) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 30) & 0x1) == 0)
+                                                              if (((word >> 31) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx00001xxxxxx10100011100
-                                                                     ldsmaxab.  */
-                                                                  return 1036;
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         00111000101xxxxx010000xxxxxxxxxx
+                                                                         ldsmaxab.  */
+                                                                      return 1057;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         01111000101xxxxx010000xxxxxxxxxx
+                                                                         ldsmaxah.  */
+                                                                      return 1060;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00001xxxxxx10100011110
-                                                                     ldsmaxah.  */
-                                                                  return 1039;
+                                                                     1x111000101xxxxx010000xxxxxxxxxx
+                                                                     ldsmaxa.  */
+                                                                  return 1063;
                                                                 }
                                                             }
                                                                 }
                                                             }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx00001xxxxxx101000111x1
-                                                                 ldsmaxa.  */
-                                                              return 1042;
-                                                            }
                                                         }
                                                         }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      else
                                                         {
                                                         {
-                                                          if (((word >> 31) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 30) & 0x1) == 0)
+                                                              if (((word >> 31) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx00001xxxxxx11000011100
-                                                                     ldsmaxlb.  */
-                                                                  return 1037;
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         00111000011xxxxx010000xxxxxxxxxx
+                                                                         ldsmaxlb.  */
+                                                                      return 1058;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         01111000011xxxxx010000xxxxxxxxxx
+                                                                         ldsmaxlh.  */
+                                                                      return 1061;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00001xxxxxx11000011110
-                                                                     ldsmaxlh.  */
-                                                                  return 1040;
+                                                                     1x111000011xxxxx010000xxxxxxxxxx
+                                                                     ldsmaxl.  */
+                                                                  return 1064;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx00001xxxxxx110000111x1
-                                                                 ldsmaxl.  */
-                                                              return 1043;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 31) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 30) & 0x1) == 0)
+                                                              if (((word >> 31) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx00001xxxxxx11100011100
-                                                                     ldsmaxalb.  */
-                                                                  return 1038;
+                                                                  if (((word >> 30) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         00111000111xxxxx010000xxxxxxxxxx
+                                                                         ldsmaxalb.  */
+                                                                      return 1059;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         01111000111xxxxx010000xxxxxxxxxx
+                                                                         ldsmaxalh.  */
+                                                                      return 1062;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00001xxxxxx11100011110
-                                                                     ldsmaxalh.  */
-                                                                  return 1041;
+                                                                     1x111000111xxxxx010000xxxxxxxxxx
+                                                                     ldsmaxal.  */
+                                                                  return 1065;
                                                                 }
                                                             }
                                                                 }
                                                             }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 31) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00111000xx1xxxxx110000xxxxxxxxxx
+                                                                 ldaprb.  */
+                                                              return 932;
+                                                            }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00001xxxxxx111000111x1
-                                                                 ldsmaxal.  */
-                                                              return 1044;
+                                                                 01111000xx1xxxxx110000xxxxxxxxxx
+                                                                 ldaprh.  */
+                                                              return 933;
                                                             }
                                                         }
                                                             }
                                                         }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             1x111000xx1xxxxx110000xxxxxxxxxx
+                                                             ldapr.  */
+                                                          return 934;
+                                                        }
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -1189,26 +1222,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx10000011100
+                                                                     00111000001xxxxxx01000xxxxxxxxxx
                                                                      ldeorb.  */
                                                                      ldeorb.  */
-                                                                  return 1009;
+                                                                  return 1030;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx10000011110
+                                                                     01111000001xxxxxx01000xxxxxxxxxx
                                                                      ldeorh.  */
                                                                      ldeorh.  */
-                                                                  return 1010;
+                                                                  return 1031;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00010xxxxxx100000111x1
+                                                                 1x111000001xxxxxx01000xxxxxxxxxx
                                                                  ldeor.  */
                                                                  ldeor.  */
-                                                              return 1011;
+                                                              return 1032;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1219,26 +1252,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx10100011100
+                                                                     00111000101xxxxxx01000xxxxxxxxxx
                                                                      ldeorab.  */
                                                                      ldeorab.  */
-                                                                  return 1012;
+                                                                  return 1033;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx10100011110
+                                                                     01111000101xxxxxx01000xxxxxxxxxx
                                                                      ldeorah.  */
                                                                      ldeorah.  */
-                                                                  return 1015;
+                                                                  return 1036;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00010xxxxxx101000111x1
+                                                                 1x111000101xxxxxx01000xxxxxxxxxx
                                                                  ldeora.  */
                                                                  ldeora.  */
-                                                              return 1018;
+                                                              return 1039;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1252,26 +1285,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx11000011100
+                                                                     00111000011xxxxxx01000xxxxxxxxxx
                                                                      ldeorlb.  */
                                                                      ldeorlb.  */
-                                                                  return 1013;
+                                                                  return 1034;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx11000011110
+                                                                     01111000011xxxxxx01000xxxxxxxxxx
                                                                      ldeorlh.  */
                                                                      ldeorlh.  */
-                                                                  return 1016;
+                                                                  return 1037;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00010xxxxxx110000111x1
+                                                                 1x111000011xxxxxx01000xxxxxxxxxx
                                                                  ldeorl.  */
                                                                  ldeorl.  */
-                                                              return 1019;
+                                                              return 1040;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1282,26 +1315,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx11100011100
+                                                                     00111000111xxxxxx01000xxxxxxxxxx
                                                                      ldeoralb.  */
                                                                      ldeoralb.  */
-                                                                  return 1014;
+                                                                  return 1035;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00010xxxxxx11100011110
+                                                                     01111000111xxxxxx01000xxxxxxxxxx
                                                                      ldeoralh.  */
                                                                      ldeoralh.  */
-                                                                  return 1017;
+                                                                  return 1038;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00010xxxxxx111000111x1
+                                                                 1x111000111xxxxxx01000xxxxxxxxxx
                                                                  ldeoral.  */
                                                                  ldeoral.  */
-                                                              return 1020;
+                                                              return 1041;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1318,26 +1351,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx10000011100
+                                                                     00111000001xxxxxx11000xxxxxxxxxx
                                                                      ldumaxb.  */
                                                                      ldumaxb.  */
-                                                                  return 1057;
+                                                                  return 1078;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx10000011110
+                                                                     01111000001xxxxxx11000xxxxxxxxxx
                                                                      ldumaxh.  */
                                                                      ldumaxh.  */
-                                                                  return 1058;
+                                                                  return 1079;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00011xxxxxx100000111x1
+                                                                 1x111000001xxxxxx11000xxxxxxxxxx
                                                                  ldumax.  */
                                                                  ldumax.  */
-                                                              return 1059;
+                                                              return 1080;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1348,26 +1381,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx10100011100
+                                                                     00111000101xxxxxx11000xxxxxxxxxx
                                                                      ldumaxab.  */
                                                                      ldumaxab.  */
-                                                                  return 1060;
+                                                                  return 1081;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx10100011110
+                                                                     01111000101xxxxxx11000xxxxxxxxxx
                                                                      ldumaxah.  */
                                                                      ldumaxah.  */
-                                                                  return 1063;
+                                                                  return 1084;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00011xxxxxx101000111x1
+                                                                 1x111000101xxxxxx11000xxxxxxxxxx
                                                                  ldumaxa.  */
                                                                  ldumaxa.  */
-                                                              return 1066;
+                                                              return 1087;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1381,26 +1414,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx11000011100
+                                                                     00111000011xxxxxx11000xxxxxxxxxx
                                                                      ldumaxlb.  */
                                                                      ldumaxlb.  */
-                                                                  return 1061;
+                                                                  return 1082;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx11000011110
+                                                                     01111000011xxxxxx11000xxxxxxxxxx
                                                                      ldumaxlh.  */
                                                                      ldumaxlh.  */
-                                                                  return 1064;
+                                                                  return 1085;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00011xxxxxx110000111x1
+                                                                 1x111000011xxxxxx11000xxxxxxxxxx
                                                                  ldumaxl.  */
                                                                  ldumaxl.  */
-                                                              return 1067;
+                                                              return 1088;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1411,26 +1444,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx11100011100
+                                                                     00111000111xxxxxx11000xxxxxxxxxx
                                                                      ldumaxalb.  */
                                                                      ldumaxalb.  */
-                                                                  return 1062;
+                                                                  return 1083;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00011xxxxxx11100011110
+                                                                     01111000111xxxxxx11000xxxxxxxxxx
                                                                      ldumaxalh.  */
                                                                      ldumaxalh.  */
-                                                                  return 1065;
+                                                                  return 1086;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00011xxxxxx111000111x1
+                                                                 1x111000111xxxxxx11000xxxxxxxxxx
                                                                  ldumaxal.  */
                                                                  ldumaxal.  */
-                                                              return 1068;
+                                                              return 1089;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1453,26 +1486,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx10000011100
+                                                                     00111000001xxxxxx00100xxxxxxxxxx
                                                                      ldclrb.  */
                                                                      ldclrb.  */
-                                                                  return 997;
+                                                                  return 1018;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx10000011110
+                                                                     01111000001xxxxxx00100xxxxxxxxxx
                                                                      ldclrh.  */
                                                                      ldclrh.  */
-                                                                  return 998;
+                                                                  return 1019;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00100xxxxxx100000111x1
+                                                                 1x111000001xxxxxx00100xxxxxxxxxx
                                                                  ldclr.  */
                                                                  ldclr.  */
-                                                              return 999;
+                                                              return 1020;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1483,26 +1516,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx10100011100
+                                                                     00111000101xxxxxx00100xxxxxxxxxx
                                                                      ldclrab.  */
                                                                      ldclrab.  */
-                                                                  return 1000;
+                                                                  return 1021;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx10100011110
+                                                                     01111000101xxxxxx00100xxxxxxxxxx
                                                                      ldclrah.  */
                                                                      ldclrah.  */
-                                                                  return 1003;
+                                                                  return 1024;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00100xxxxxx101000111x1
+                                                                 1x111000101xxxxxx00100xxxxxxxxxx
                                                                  ldclra.  */
                                                                  ldclra.  */
-                                                              return 1006;
+                                                              return 1027;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1516,26 +1549,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx11000011100
+                                                                     00111000011xxxxxx00100xxxxxxxxxx
                                                                      ldclrlb.  */
                                                                      ldclrlb.  */
-                                                                  return 1001;
+                                                                  return 1022;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx11000011110
+                                                                     01111000011xxxxxx00100xxxxxxxxxx
                                                                      ldclrlh.  */
                                                                      ldclrlh.  */
-                                                                  return 1004;
+                                                                  return 1025;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00100xxxxxx110000111x1
+                                                                 1x111000011xxxxxx00100xxxxxxxxxx
                                                                  ldclrl.  */
                                                                  ldclrl.  */
-                                                              return 1007;
+                                                              return 1028;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1546,26 +1579,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx11100011100
+                                                                     00111000111xxxxxx00100xxxxxxxxxx
                                                                      ldclralb.  */
                                                                      ldclralb.  */
-                                                                  return 1002;
+                                                                  return 1023;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00100xxxxxx11100011110
+                                                                     01111000111xxxxxx00100xxxxxxxxxx
                                                                      ldclralh.  */
                                                                      ldclralh.  */
-                                                                  return 1005;
+                                                                  return 1026;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00100xxxxxx111000111x1
+                                                                 1x111000111xxxxxx00100xxxxxxxxxx
                                                                  ldclral.  */
                                                                  ldclral.  */
-                                                              return 1008;
+                                                              return 1029;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1582,26 +1615,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx10000011100
+                                                                     00111000001xxxxxx10100xxxxxxxxxx
                                                                      ldsminb.  */
                                                                      ldsminb.  */
-                                                                  return 1045;
+                                                                  return 1066;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx10000011110
+                                                                     01111000001xxxxxx10100xxxxxxxxxx
                                                                      ldsminh.  */
                                                                      ldsminh.  */
-                                                                  return 1046;
+                                                                  return 1067;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00101xxxxxx100000111x1
+                                                                 1x111000001xxxxxx10100xxxxxxxxxx
                                                                  ldsmin.  */
                                                                  ldsmin.  */
-                                                              return 1047;
+                                                              return 1068;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1612,26 +1645,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx10100011100
+                                                                     00111000101xxxxxx10100xxxxxxxxxx
                                                                      ldsminab.  */
                                                                      ldsminab.  */
-                                                                  return 1048;
+                                                                  return 1069;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx10100011110
+                                                                     01111000101xxxxxx10100xxxxxxxxxx
                                                                      ldsminah.  */
                                                                      ldsminah.  */
-                                                                  return 1051;
+                                                                  return 1072;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00101xxxxxx101000111x1
+                                                                 1x111000101xxxxxx10100xxxxxxxxxx
                                                                  ldsmina.  */
                                                                  ldsmina.  */
-                                                              return 1054;
+                                                              return 1075;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1645,26 +1678,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx11000011100
+                                                                     00111000011xxxxxx10100xxxxxxxxxx
                                                                      ldsminlb.  */
                                                                      ldsminlb.  */
-                                                                  return 1049;
+                                                                  return 1070;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx11000011110
+                                                                     01111000011xxxxxx10100xxxxxxxxxx
                                                                      ldsminlh.  */
                                                                      ldsminlh.  */
-                                                                  return 1052;
+                                                                  return 1073;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00101xxxxxx110000111x1
+                                                                 1x111000011xxxxxx10100xxxxxxxxxx
                                                                  ldsminl.  */
                                                                  ldsminl.  */
-                                                              return 1055;
+                                                              return 1076;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1675,26 +1708,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx11100011100
+                                                                     00111000111xxxxxx10100xxxxxxxxxx
                                                                      ldsminalb.  */
                                                                      ldsminalb.  */
-                                                                  return 1050;
+                                                                  return 1071;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00101xxxxxx11100011110
+                                                                     01111000111xxxxxx10100xxxxxxxxxx
                                                                      ldsminalh.  */
                                                                      ldsminalh.  */
-                                                                  return 1053;
+                                                                  return 1074;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00101xxxxxx111000111x1
+                                                                 1x111000111xxxxxx10100xxxxxxxxxx
                                                                  ldsminal.  */
                                                                  ldsminal.  */
-                                                              return 1056;
+                                                              return 1077;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1714,26 +1747,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx10000011100
+                                                                     00111000001xxxxxx01100xxxxxxxxxx
                                                                      ldsetb.  */
                                                                      ldsetb.  */
-                                                                  return 1021;
+                                                                  return 1042;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx10000011110
+                                                                     01111000001xxxxxx01100xxxxxxxxxx
                                                                      ldseth.  */
                                                                      ldseth.  */
-                                                                  return 1022;
+                                                                  return 1043;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00110xxxxxx100000111x1
+                                                                 1x111000001xxxxxx01100xxxxxxxxxx
                                                                  ldset.  */
                                                                  ldset.  */
-                                                              return 1023;
+                                                              return 1044;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1744,26 +1777,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx10100011100
+                                                                     00111000101xxxxxx01100xxxxxxxxxx
                                                                      ldsetab.  */
                                                                      ldsetab.  */
-                                                                  return 1024;
+                                                                  return 1045;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx10100011110
+                                                                     01111000101xxxxxx01100xxxxxxxxxx
                                                                      ldsetah.  */
                                                                      ldsetah.  */
-                                                                  return 1027;
+                                                                  return 1048;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00110xxxxxx101000111x1
+                                                                 1x111000101xxxxxx01100xxxxxxxxxx
                                                                  ldseta.  */
                                                                  ldseta.  */
-                                                              return 1030;
+                                                              return 1051;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1777,26 +1810,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx11000011100
+                                                                     00111000011xxxxxx01100xxxxxxxxxx
                                                                      ldsetlb.  */
                                                                      ldsetlb.  */
-                                                                  return 1025;
+                                                                  return 1046;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx11000011110
+                                                                     01111000011xxxxxx01100xxxxxxxxxx
                                                                      ldsetlh.  */
                                                                      ldsetlh.  */
-                                                                  return 1028;
+                                                                  return 1049;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00110xxxxxx110000111x1
+                                                                 1x111000011xxxxxx01100xxxxxxxxxx
                                                                  ldsetl.  */
                                                                  ldsetl.  */
-                                                              return 1031;
+                                                              return 1052;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1807,26 +1840,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx11100011100
+                                                                     00111000111xxxxxx01100xxxxxxxxxx
                                                                      ldsetalb.  */
                                                                      ldsetalb.  */
-                                                                  return 1026;
+                                                                  return 1047;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00110xxxxxx11100011110
+                                                                     01111000111xxxxxx01100xxxxxxxxxx
                                                                      ldsetalh.  */
                                                                      ldsetalh.  */
-                                                                  return 1029;
+                                                                  return 1050;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00110xxxxxx111000111x1
+                                                                 1x111000111xxxxxx01100xxxxxxxxxx
                                                                  ldsetal.  */
                                                                  ldsetal.  */
-                                                              return 1032;
+                                                              return 1053;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1843,26 +1876,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx10000011100
+                                                                     00111000001xxxxxx11100xxxxxxxxxx
                                                                      lduminb.  */
                                                                      lduminb.  */
-                                                                  return 1069;
+                                                                  return 1090;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx10000011110
+                                                                     01111000001xxxxxx11100xxxxxxxxxx
                                                                      lduminh.  */
                                                                      lduminh.  */
-                                                                  return 1070;
+                                                                  return 1091;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00111xxxxxx100000111x1
+                                                                 1x111000001xxxxxx11100xxxxxxxxxx
                                                                  ldumin.  */
                                                                  ldumin.  */
-                                                              return 1071;
+                                                              return 1092;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1873,26 +1906,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx10100011100
+                                                                     00111000101xxxxxx11100xxxxxxxxxx
                                                                      lduminab.  */
                                                                      lduminab.  */
-                                                                  return 1072;
+                                                                  return 1093;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx10100011110
+                                                                     01111000101xxxxxx11100xxxxxxxxxx
                                                                      lduminah.  */
                                                                      lduminah.  */
-                                                                  return 1075;
+                                                                  return 1096;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00111xxxxxx101000111x1
+                                                                 1x111000101xxxxxx11100xxxxxxxxxx
                                                                  ldumina.  */
                                                                  ldumina.  */
-                                                              return 1078;
+                                                              return 1099;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1906,26 +1939,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx11000011100
+                                                                     00111000011xxxxxx11100xxxxxxxxxx
                                                                      lduminlb.  */
                                                                      lduminlb.  */
-                                                                  return 1073;
+                                                                  return 1094;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx11000011110
+                                                                     01111000011xxxxxx11100xxxxxxxxxx
                                                                      lduminlh.  */
                                                                      lduminlh.  */
-                                                                  return 1076;
+                                                                  return 1097;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00111xxxxxx110000111x1
+                                                                 1x111000011xxxxxx11100xxxxxxxxxx
                                                                  lduminl.  */
                                                                  lduminl.  */
-                                                              return 1079;
+                                                              return 1100;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -1936,26 +1969,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx11100011100
+                                                                     00111000111xxxxxx11100xxxxxxxxxx
                                                                      lduminalb.  */
                                                                      lduminalb.  */
-                                                                  return 1074;
+                                                                  return 1095;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00111xxxxxx11100011110
+                                                                     01111000111xxxxxx11100xxxxxxxxxx
                                                                      lduminalh.  */
                                                                      lduminalh.  */
-                                                                  return 1077;
+                                                                  return 1098;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00111xxxxxx111000111x1
+                                                                 1x111000111xxxxxx11100xxxxxxxxxx
                                                                  lduminal.  */
                                                                  lduminal.  */
-                                                              return 1080;
+                                                              return 1101;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -1978,26 +2011,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx00000011100
+                                                         00111000000xxxxxxxxx10xxxxxxxxxx
                                                          sttrb.  */
                                                          sttrb.  */
-                                                      return 871;
+                                                      return 887;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx00000011110
+                                                         01111000000xxxxxxxxx10xxxxxxxxxx
                                                          sttrh.  */
                                                          sttrh.  */
-                                                      return 874;
+                                                      return 890;
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx000000111x1
+                                                     1x111000000xxxxxxxxx10xxxxxxxxxx
                                                      sttr.  */
                                                      sttr.  */
-                                                  return 877;
+                                                  return 893;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -2008,26 +2041,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx01000011100
+                                                         00111000010xxxxxxxxx10xxxxxxxxxx
                                                          ldtrb.  */
                                                          ldtrb.  */
-                                                      return 872;
+                                                      return 888;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx01000011110
+                                                         01111000010xxxxxxxxx10xxxxxxxxxx
                                                          ldtrh.  */
                                                          ldtrh.  */
-                                                      return 875;
+                                                      return 891;
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx010000111x1
+                                                     1x111000010xxxxxxxxx10xxxxxxxxxx
                                                      ldtr.  */
                                                      ldtr.  */
-                                                  return 878;
+                                                  return 894;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -2039,26 +2072,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx0x100011100
+                                                     001110001x0xxxxxxxxx10xxxxxxxxxx
                                                      ldtrsb.  */
                                                      ldtrsb.  */
-                                                  return 873;
+                                                  return 889;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx0x100011101
+                                                     101110001x0xxxxxxxxx10xxxxxxxxxx
                                                      ldtrsw.  */
                                                      ldtrsw.  */
-                                                  return 879;
+                                                  return 895;
                                                 }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                                 }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx01xxxxxxxxx0x10001111x
+                                                 x11110001x0xxxxxxxxx10xxxxxxxxxx
                                                  ldtrsh.  */
                                                  ldtrsh.  */
-                                              return 876;
+                                              return 892;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -2074,26 +2107,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx10000011100
+                                                         00111000001xxxxxxxxx10xxxxxxxxxx
                                                          strb.  */
                                                          strb.  */
-                                                      return 859;
+                                                      return 875;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx10000011110
+                                                         01111000001xxxxxxxxx10xxxxxxxxxx
                                                          strh.  */
                                                          strh.  */
-                                                      return 864;
+                                                      return 880;
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx100000111x1
+                                                     1x111000001xxxxxxxxx10xxxxxxxxxx
                                                      str.  */
                                                      str.  */
-                                                  return 867;
+                                                  return 883;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -2104,26 +2137,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx11000011100
+                                                         00111000011xxxxxxxxx10xxxxxxxxxx
                                                          ldrb.  */
                                                          ldrb.  */
-                                                      return 860;
+                                                      return 876;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01xxxxxxxxx11000011110
+                                                         01111000011xxxxxxxxx10xxxxxxxxxx
                                                          ldrh.  */
                                                          ldrh.  */
-                                                      return 865;
+                                                      return 881;
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx110000111x1
+                                                     1x111000011xxxxxxxxx10xxxxxxxxxx
                                                      ldr.  */
                                                      ldr.  */
-                                                  return 868;
+                                                  return 884;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -2135,17 +2168,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx1x100011100
+                                                     001110001x1xxxxxxxxx10xxxxxxxxxx
                                                      ldrsb.  */
                                                      ldrsb.  */
-                                                  return 861;
+                                                  return 877;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx1x100011101
+                                                     101110001x1xxxxxxxxx10xxxxxxxxxx
                                                      ldrsw.  */
                                                      ldrsw.  */
-                                                  return 869;
+                                                  return 885;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -2154,17 +2187,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx1x100011110
+                                                     011110001x1xxxxxxxxx10xxxxxxxxxx
                                                      ldrsh.  */
                                                      ldrsh.  */
-                                                  return 866;
+                                                  return 882;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01xxxxxxxxx1x100011111
+                                                     111110001x1xxxxxxxxx10xxxxxxxxxx
                                                      prfm.  */
                                                      prfm.  */
-                                                  return 870;
+                                                  return 886;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -2173,97 +2206,119 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             }
                           else
                             {
                             }
                           else
                             {
-                              if (((word >> 23) & 0x1) == 0)
+                              if (((word >> 21) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 22) & 0x1) == 0)
+                                  if (((word >> 23) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 31) & 0x1) == 0)
+                                      if (((word >> 22) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx1xxxxxxxxxxx0000011100
-                                                 strb.  */
-                                              return 836;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     00111000000xxxxxxxxxx1xxxxxxxxxx
+                                                     strb.  */
+                                                  return 852;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     01111000000xxxxxxxxxx1xxxxxxxxxx
+                                                     strh.  */
+                                                  return 857;
+                                                }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1xxxxxxxxxxx0000011110
-                                                 strh.  */
-                                              return 841;
+                                                 1x111000000xxxxxxxxxx1xxxxxxxxxx
+                                                 str.  */
+                                              return 860;
                                             }
                                         }
                                       else
                                         {
                                             }
                                         }
                                       else
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx1xxxxxxxxxxx00000111x1
-                                             str.  */
-                                          return 844;
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     00111000010xxxxxxxxxx1xxxxxxxxxx
+                                                     ldrb.  */
+                                                  return 853;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     01111000010xxxxxxxxxx1xxxxxxxxxx
+                                                     ldrh.  */
+                                                  return 858;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 1x111000010xxxxxxxxxx1xxxxxxxxxx
+                                                 ldr.  */
+                                              return 861;
+                                            }
                                         }
                                     }
                                   else
                                     {
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 31) & 0x1) == 0)
+                                      if (((word >> 30) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1xxxxxxxxxxx1000011100
-                                                 ldrb.  */
-                                              return 837;
+                                                 001110001x0xxxxxxxxxx1xxxxxxxxxx
+                                                 ldrsb.  */
+                                              return 854;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1xxxxxxxxxxx1000011110
-                                                 ldrh.  */
-                                              return 842;
+                                                 101110001x0xxxxxxxxxx1xxxxxxxxxx
+                                                 ldrsw.  */
+                                              return 862;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx1xxxxxxxxxxx10000111x1
-                                             ldr.  */
-                                          return 845;
+                                             x11110001x0xxxxxxxxxx1xxxxxxxxxx
+                                             ldrsh.  */
+                                          return 859;
                                         }
                                     }
                                 }
                               else
                                 {
                                         }
                                     }
                                 }
                               else
                                 {
-                                  if (((word >> 30) & 0x1) == 0)
+                                  if (((word >> 23) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 31) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx1xxxxxxxxxxxx100011100
-                                             ldrsb.  */
-                                          return 838;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx1xxxxxxxxxxxx100011101
-                                             ldrsw.  */
-                                          return 846;
-                                        }
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         xx1110000x1xxxxxxxxxx1xxxxxxxxxx
+                                         ldraa.  */
+                                      return 908;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1xxxxxxxxxxxx10001111x
-                                         ldrsh.  */
-                                      return 843;
+                                         xx1110001x1xxxxxxxxxx1xxxxxxxxxx
+                                         ldrab.  */
+                                      return 909;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -2275,103 +2330,246 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           if (((word >> 22) & 0x1) == 0)
                             {
                         {
                           if (((word >> 22) & 0x1) == 0)
                             {
-                              if (((word >> 31) & 0x1) == 0)
+                              if (((word >> 29) & 0x1) == 0)
                                 {
                                   if (((word >> 30) & 0x1) == 0)
                                     {
                                 {
                                   if (((word >> 30) & 0x1) == 0)
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxxx0010011x00
-                                         strb.  */
-                                      return 847;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0001100100xxxxxxxxxxxxxxxxxxxxxx
+                                             stlurb.  */
+                                          return 2027;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1001100100xxxxxxxxxxxxxxxxxxxxxx
+                                             stlur.  */
+                                          return 2035;
+                                        }
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxxx0010011x10
-                                         strh.  */
-                                      return 852;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0101100100xxxxxxxxxxxxxxxxxxxxxx
+                                             stlurh.  */
+                                          return 2031;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1101100100xxxxxxxxxxxxxxxxxxxxxx
+                                             stlur.  */
+                                          return 2038;
+                                        }
                                     }
                                 }
                               else
                                 {
                                     }
                                 }
                               else
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx0010011xx1
-                                     str.  */
-                                  return 855;
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0011100100xxxxxxxxxxxxxxxxxxxxxx
+                                             strb.  */
+                                          return 863;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0111100100xxxxxxxxxxxxxxxxxxxxxx
+                                             strh.  */
+                                          return 868;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         1x11100100xxxxxxxxxxxxxxxxxxxxxx
+                                         str.  */
+                                      return 871;
+                                    }
                                 }
                             }
                           else
                             {
                                 }
                             }
                           else
                             {
-                              if (((word >> 31) & 0x1) == 0)
+                              if (((word >> 29) & 0x1) == 0)
                                 {
                                   if (((word >> 30) & 0x1) == 0)
                                     {
                                 {
                                   if (((word >> 30) & 0x1) == 0)
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxxx1010011x00
-                                         ldrb.  */
-                                      return 848;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0001100101xxxxxxxxxxxxxxxxxxxxxx
+                                             ldapurb.  */
+                                          return 2028;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1001100101xxxxxxxxxxxxxxxxxxxxxx
+                                             ldapur.  */
+                                          return 2036;
+                                        }
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxxx1010011x10
-                                         ldrh.  */
-                                      return 853;
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0101100101xxxxxxxxxxxxxxxxxxxxxx
+                                             ldapurh.  */
+                                          return 2032;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1101100101xxxxxxxxxxxxxxxxxxxxxx
+                                             ldapur.  */
+                                          return 2039;
+                                        }
                                     }
                                 }
                               else
                                 {
                                     }
                                 }
                               else
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx1010011xx1
-                                     ldr.  */
-                                  return 856;
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0011100101xxxxxxxxxxxxxxxxxxxxxx
+                                             ldrb.  */
+                                          return 864;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0111100101xxxxxxxxxxxxxxxxxxxxxx
+                                             ldrh.  */
+                                          return 869;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         1x11100101xxxxxxxxxxxxxxxxxxxxxx
+                                         ldr.  */
+                                      return 872;
+                                    }
                                 }
                             }
                         }
                       else
                         {
                                 }
                             }
                         }
                       else
                         {
-                          if (((word >> 30) & 0x1) == 0)
+                          if (((word >> 29) & 0x1) == 0)
                             {
                             {
-                              if (((word >> 31) & 0x1) == 0)
+                              if (((word >> 22) & 0x1) == 0)
                                 {
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxx110011x00
-                                     ldrsb.  */
-                                  return 849;
+                                  if (((word >> 30) & 0x1) == 0)
+                                    {
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             0001100110xxxxxxxxxxxxxxxxxxxxxx
+                                             ldapursb.  */
+                                          return 2030;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1001100110xxxxxxxxxxxxxxxxxxxxxx
+                                             ldapursw.  */
+                                          return 2037;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         x101100110xxxxxxxxxxxxxxxxxxxxxx
+                                         ldapursh.  */
+                                      return 2034;
+                                    }
                                 }
                               else
                                 {
                                 }
                               else
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxx110011x01
-                                     ldrsw.  */
-                                  return 857;
+                                  if (((word >> 30) & 0x1) == 0)
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         x001100111xxxxxxxxxxxxxxxxxxxxxx
+                                         ldapursb.  */
+                                      return 2029;
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         x101100111xxxxxxxxxxxxxxxxxxxxxx
+                                         ldapursh.  */
+                                      return 2033;
+                                    }
                                 }
                             }
                           else
                             {
                                 }
                             }
                           else
                             {
-                              if (((word >> 31) & 0x1) == 0)
+                              if (((word >> 30) & 0x1) == 0)
                                 {
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxx110011x10
-                                     ldrsh.  */
-                                  return 854;
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         001110011xxxxxxxxxxxxxxxxxxxxxxx
+                                         ldrsb.  */
+                                      return 865;
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         101110011xxxxxxxxxxxxxxxxxxxxxxx
+                                         ldrsw.  */
+                                      return 873;
+                                    }
                                 }
                               else
                                 {
                                 }
                               else
                                 {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxx110011x11
-                                     prfm.  */
-                                  return 858;
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         011110011xxxxxxxxxxxxxxxxxxxxxxx
+                                         ldrsh.  */
+                                      return 870;
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         111110011xxxxxxxxxxxxxxxxxxxxxxx
+                                         prfm.  */
+                                      return 874;
+                                    }
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -2393,17 +2591,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx00100x00x
+                                 x00x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  and.  */
                                  and.  */
-                              return 938;
+                              return 959;
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx00100x01x
+                                 x10x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  eor.  */
                                  eor.  */
-                              return 942;
+                              return 963;
                             }
                         }
                       else
                             }
                         }
                       else
@@ -2412,17 +2610,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx00100x10x
+                                 x01x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  orr.  */
                                  orr.  */
-                              return 940;
+                              return 961;
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx00100x11x
+                                 x11x00100xxxxxxxxxxxxxxxxxxxxxxx
                                  ands.  */
                                  ands.  */
-                              return 943;
+                              return 964;
                             }
                         }
                     }
                             }
                         }
                     }
@@ -2434,26 +2632,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx10100x00x
+                                 x00x00101xxxxxxxxxxxxxxxxxxxxxxx
                                  movn.  */
                                  movn.  */
-                              return 1129;
+                              return 1150;
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx10100x01x
+                                 x10x00101xxxxxxxxxxxxxxxxxxxxxxx
                                  movz.  */
                                  movz.  */
-                              return 1131;
+                              return 1152;
                             }
                         }
                       else
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                             }
                         }
                       else
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxx10100x1xx
+                             xx1x00101xxxxxxxxxxxxxxxxxxxxxxx
                              movk.  */
                              movk.  */
-                          return 1133;
+                          return 1154;
                         }
                     }
                 }
                         }
                     }
                 }
@@ -2469,17 +2667,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx0101000x
+                                     x0001010xx0xxxxxxxxxxxxxxxxxxxxx
                                      and.  */
                                      and.  */
-                                  return 945;
+                                  return 966;
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx0101001x
+                                     x1001010xx0xxxxxxxxxxxxxxxxxxxxx
                                      eor.  */
                                      eor.  */
-                                  return 952;
+                                  return 973;
                                 }
                             }
                           else
                                 }
                             }
                           else
@@ -2488,17 +2686,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx0101010x
+                                     x0101010xx0xxxxxxxxxxxxxxxxxxxxx
                                      orr.  */
                                      orr.  */
-                                  return 947;
+                                  return 968;
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx0101011x
+                                     x1101010xx0xxxxxxxxxxxxxxxxxxxxx
                                      ands.  */
                                      ands.  */
-                                  return 954;
+                                  return 975;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -2518,7 +2716,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0000101100x
+                                                     x0011010000xxxxxxxxx00xxxxxxxxxx
                                                      adc.  */
                                                   return 0;
                                                 }
                                                      adc.  */
                                                   return 0;
                                                 }
@@ -2526,7 +2724,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0000101101x
+                                                     x1011010000xxxxxxxxx00xxxxxxxxxx
                                                      sbc.  */
                                                   return 2;
                                                 }
                                                      sbc.  */
                                                   return 2;
                                                 }
@@ -2537,7 +2735,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0000101110x
+                                                     x0111010000xxxxxxxxx00xxxxxxxxxx
                                                      adcs.  */
                                                   return 1;
                                                 }
                                                      adcs.  */
                                                   return 1;
                                                 }
@@ -2545,7 +2743,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00xxxxxxxxx0000101111x
+                                                     x1111010000xxxxxxxxx00xxxxxxxxxx
                                                      sbcs.  */
                                                   return 4;
                                                 }
                                                      sbcs.  */
                                                   return 4;
                                                 }
@@ -2557,17 +2755,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxx00101011x0x
+                                                 x0x11010100xxxxxxxxx00xxxxxxxxxx
                                                  csel.  */
                                                  csel.  */
-                                              return 641;
+                                              return 656;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxx00101011x1x
+                                                 x1x11010100xxxxxxxxx00xxxxxxxxxx
                                                  csinv.  */
                                                  csinv.  */
-                                              return 645;
+                                              return 660;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -2579,17 +2777,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxx01001011x0x
+                                                 x0x11010010xxxxxxxxx00xxxxxxxxxx
                                                  ccmn.  */
                                                  ccmn.  */
-                                              return 639;
+                                              return 654;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx00xxxxxxxxx01001011x1x
+                                                 x1x11010010xxxxxxxxx00xxxxxxxxxx
                                                  ccmp.  */
                                                  ccmp.  */
-                                              return 640;
+                                              return 655;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -2604,17 +2802,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx00000x0xxxx01101011xxx
+                                                             xxx11010110xxxx0x00000xxxxxxxxxx
                                                              rbit.  */
                                                              rbit.  */
-                                                          return 664;
+                                                          return 679;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx00000x1xxxx01101011xxx
+                                                             xxx11010110xxxx1x00000xxxxxxxxxx
                                                              pacia.  */
                                                              pacia.  */
-                                                          return 672;
+                                                          return 687;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -2623,17 +2821,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx00001xxxxxx01101011x0x
+                                                             x0x11010110xxxxxx10000xxxxxxxxxx
                                                              crc32b.  */
                                                              crc32b.  */
-                                                          return 701;
+                                                          return 716;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx00001xxxxxx01101011x1x
+                                                             x1x11010110xxxxxx10000xxxxxxxxxx
                                                              xpaci.  */
                                                              xpaci.  */
-                                                          return 688;
+                                                          return 703;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -2643,17 +2841,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0001xxxxxxx01101011x0x
+                                                         x0x11010110xxxxxxx1000xxxxxxxxxx
                                                          lslv.  */
                                                          lslv.  */
-                                                      return 692;
+                                                      return 707;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0001xxxxxxx01101011x1x
+                                                         x1x11010110xxxxxxx1000xxxxxxxxxx
                                                          paciza.  */
                                                          paciza.  */
-                                                      return 680;
+                                                      return 695;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -2667,26 +2865,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx00100x0xxxx01101011xxx
+                                                             xxx11010110xxxx0x00100xxxxxxxxxx
                                                              clz.  */
                                                              clz.  */
-                                                          return 669;
+                                                          return 684;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx00100x1xxxx01101011xxx
+                                                             xxx11010110xxxx1x00100xxxxxxxxxx
                                                              autia.  */
                                                              autia.  */
-                                                          return 676;
+                                                          return 691;
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00101xxxxxx01101011xxx
+                                                         xxx11010110xxxxxx10100xxxxxxxxxx
                                                          crc32cb.  */
                                                          crc32cb.  */
-                                                      return 705;
+                                                      return 720;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -2695,17 +2893,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0011xxxxxxx01101011x0x
+                                                         x0x11010110xxxxxxx1100xxxxxxxxxx
                                                          pacga.  */
                                                          pacga.  */
-                                                      return 700;
+                                                      return 715;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0011xxxxxxx01101011x1x
+                                                         x1x11010110xxxxxxx1100xxxxxxxxxx
                                                          autiza.  */
                                                          autiza.  */
-                                                      return 684;
+                                                      return 699;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -2714,130 +2912,152 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 }
                               else
                                 {
                                 }
                               else
                                 {
-                                  if (((word >> 23) & 0x1) == 0)
+                                  if (((word >> 22) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      if (((word >> 14) & 0x1) == 0)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx01xxxxxxxxx0x001011x0x
-                                             ccmn.  */
-                                          return 637;
+                                             xxx11010x00xxxxxx0xx10xxxxxxxxxx
+                                             setf8.  */
+                                          return 2025;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx01xxxxxxxxx0x001011x1x
-                                             ccmp.  */
-                                          return 638;
+                                             xxx11010x00xxxxxx1xx10xxxxxxxxxx
+                                             setf16.  */
+                                          return 2026;
                                         }
                                     }
                                   else
                                     {
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 12) & 0x1) == 0)
+                                      if (((word >> 23) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 13) & 0x1) == 0)
+                                          if (((word >> 30) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 14) & 0x1) == 0)
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x0x11010010xxxxxxxxx10xxxxxxxxxx
+                                                 ccmn.  */
+                                              return 652;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x1x11010010xxxxxxxxx10xxxxxxxxxx
+                                                 ccmp.  */
+                                              return 653;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
+                                            {
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx01000xxxxxx0x101011x0x
-                                                         udiv.  */
-                                                      return 690;
-                                                    }
-                                                  else
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 16) & 0x1) == 0)
+                                                      if (((word >> 30) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 31) & 0x1) == 0)
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0x11010110xxxxxx00010xxxxxxxxxx
+                                                             udiv.  */
+                                                          return 705;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 16) & 0x1) == 0)
                                                             {
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx01000x0xxxx0x101011x10
-                                                                 rev.  */
-                                                              return 666;
+                                                              if (((word >> 31) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     01x11010110xxxx0x00010xxxxxxxxxx
+                                                                     rev.  */
+                                                                  return 681;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     11x11010110xxxx0x00010xxxxxxxxxx
+                                                                     rev32.  */
+                                                                  return 686;
+                                                                }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx01000x0xxxx0x101011x11
-                                                                 rev32.  */
-                                                              return 671;
+                                                                 x1x11010110xxxx1x00010xxxxxxxxxx
+                                                                 pacda.  */
+                                                              return 689;
                                                             }
                                                         }
                                                             }
                                                         }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx01000x1xxxx0x101011x1x
-                                                             pacda.  */
-                                                          return 674;
-                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx11010110xxxxxx10010xxxxxxxxxx
+                                                         crc32w.  */
+                                                      return 718;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx01001xxxxxx0x101011xxx
-                                                     crc32w.  */
-                                                  return 703;
+                                                  if (((word >> 30) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x0x11010110xxxxxxx1010xxxxxxxxxx
+                                                         asrv.  */
+                                                      return 711;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x1x11010110xxxxxxx1010xxxxxxxxxx
+                                                         pacdza.  */
+                                                      return 697;
+                                                    }
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 30) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx0101xxxxxxx0x101011x0x
-                                                     asrv.  */
-                                                  return 696;
-                                                }
-                                              else
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx0101xxxxxxx0x101011x1x
-                                                     pacdza.  */
-                                                  return 682;
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 13) & 0x1) == 0)
-                                            {
-                                              if (((word >> 14) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx01100xxxxxx0x101011xxx
-                                                     autda.  */
-                                                  return 678;
+                                                  if (((word >> 14) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx11010110xxxxxx00110xxxxxxxxxx
+                                                         autda.  */
+                                                      return 693;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx11010110xxxxxx10110xxxxxxxxxx
+                                                         crc32cw.  */
+                                                      return 722;
+                                                    }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01101xxxxxx0x101011xxx
-                                                     crc32cw.  */
-                                                  return 707;
+                                                     xxx11010110xxxxxxx1110xxxxxxxxxx
+                                                     autdza.  */
+                                                  return 701;
                                                 }
                                             }
                                                 }
                                             }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0111xxxxxxx0x101011xxx
-                                                 autdza.  */
-                                              return 686;
-                                            }
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -2848,21 +3068,32 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   if (((word >> 22) & 0x1) == 0)
                                     {
                                 {
                                   if (((word >> 22) & 0x1) == 0)
                                     {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      if (((word >> 23) & 0x1) == 0)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx10xxxxxxxxx00x01011x0x
-                                             csinc.  */
-                                          return 642;
+                                             xxx11010000xxxxxxxxx01xxxxxxxxxx
+                                             rmif.  */
+                                          return 2024;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx10xxxxxxxxx00x01011x1x
-                                             csneg.  */
-                                          return 648;
+                                          if (((word >> 30) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x0x11010100xxxxxxxxx01xxxxxxxxxx
+                                                 csinc.  */
+                                              return 657;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x1x11010100xxxxxxxxx01xxxxxxxxxx
+                                                 csneg.  */
+                                              return 663;
+                                            }
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -2877,17 +3108,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10000x0xxxx01x01011xxx
+                                                         xxx11010x10xxxx0x00001xxxxxxxxxx
                                                          rev16.  */
                                                          rev16.  */
-                                                      return 665;
+                                                      return 680;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10000x1xxxx01x01011xxx
+                                                         xxx11010x10xxxx1x00001xxxxxxxxxx
                                                          pacib.  */
                                                          pacib.  */
-                                                      return 673;
+                                                      return 688;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -2896,17 +3127,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10001xxxxxx01x01011x0x
+                                                         x0x11010x10xxxxxx10001xxxxxxxxxx
                                                          crc32h.  */
                                                          crc32h.  */
-                                                      return 702;
+                                                      return 717;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10001xxxxxx01x01011x1x
+                                                         x1x11010x10xxxxxx10001xxxxxxxxxx
                                                          xpacd.  */
                                                          xpacd.  */
-                                                      return 689;
+                                                      return 704;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -2916,17 +3147,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1001xxxxxxx01x01011x0x
+                                                     x0x11010x10xxxxxxx1001xxxxxxxxxx
                                                      lsrv.  */
                                                      lsrv.  */
-                                                  return 694;
+                                                  return 709;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1001xxxxxxx01x01011x1x
+                                                     x1x11010x10xxxxxxx1001xxxxxxxxxx
                                                      pacizb.  */
                                                      pacizb.  */
-                                                  return 681;
+                                                  return 696;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -2940,35 +3171,35 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10100x0xxxx01x01011xxx
+                                                         xxx11010x10xxxx0x00101xxxxxxxxxx
                                                          cls.  */
                                                          cls.  */
-                                                      return 670;
+                                                      return 685;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10100x1xxxx01x01011xxx
+                                                         xxx11010x10xxxx1x00101xxxxxxxxxx
                                                          autib.  */
                                                          autib.  */
-                                                      return 677;
+                                                      return 692;
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx10101xxxxxx01x01011xxx
+                                                     xxx11010x10xxxxxx10101xxxxxxxxxx
                                                      crc32ch.  */
                                                      crc32ch.  */
-                                                  return 706;
+                                                  return 721;
                                                 }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                                 }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1011xxxxxxx01x01011xxx
+                                                 xxx11010x10xxxxxxx1101xxxxxxxxxx
                                                  autizb.  */
                                                  autizb.  */
-                                              return 685;
+                                              return 700;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -2985,9 +3216,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx11000xxxxxx0xx01011x0x
+                                                     x0x11010xx0xxxxxx00011xxxxxxxxxx
                                                      sdiv.  */
                                                      sdiv.  */
-                                                  return 691;
+                                                  return 706;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -2995,17 +3226,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11000x0xxxx0xx01011x1x
+                                                         x1x11010xx0xxxx0x00011xxxxxxxxxx
                                                          rev.  */
                                                          rev.  */
-                                                      return 667;
+                                                      return 682;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11000x1xxxx0xx01011x1x
+                                                         x1x11010xx0xxxx1x00011xxxxxxxxxx
                                                          pacdb.  */
                                                          pacdb.  */
-                                                      return 675;
+                                                      return 690;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -3013,9 +3244,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11001xxxxxx0xx01011xxx
+                                                 xxx11010xx0xxxxxx10011xxxxxxxxxx
                                                  crc32x.  */
                                                  crc32x.  */
-                                              return 704;
+                                              return 719;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -3024,17 +3255,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1101xxxxxxx0xx01011x0x
+                                                 x0x11010xx0xxxxxxx1011xxxxxxxxxx
                                                  rorv.  */
                                                  rorv.  */
-                                              return 698;
+                                              return 713;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1101xxxxxxx0xx01011x1x
+                                                 x1x11010xx0xxxxxxx1011xxxxxxxxxx
                                                  pacdzb.  */
                                                  pacdzb.  */
-                                              return 683;
+                                              return 698;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -3046,26 +3277,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11100xxxxxx0xx01011xxx
+                                                 xxx11010xx0xxxxxx00111xxxxxxxxxx
                                                  autdb.  */
                                                  autdb.  */
-                                              return 679;
+                                              return 694;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11101xxxxxx0xx01011xxx
+                                                 xxx11010xx0xxxxxx10111xxxxxxxxxx
                                                  crc32cx.  */
                                                  crc32cx.  */
-                                              return 708;
+                                              return 723;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx1111xxxxxxx0xx01011xxx
+                                             xxx11010xx0xxxxxxx1111xxxxxxxxxx
                                              autdzb.  */
                                              autdzb.  */
-                                          return 687;
+                                          return 702;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -3080,17 +3311,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxx1xx0101x00x
+                                 x00x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  bic.  */
                                  bic.  */
-                              return 946;
+                              return 967;
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxx1xx0101x01x
+                                 x10x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  eon.  */
                                  eon.  */
-                              return 953;
+                              return 974;
                             }
                         }
                       else
                             }
                         }
                       else
@@ -3099,17 +3330,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxx1xx0101x10x
+                                 x01x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  orn.  */
                                  orn.  */
-                              return 950;
+                              return 971;
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxx1xx0101x11x
+                                 x11x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                  bics.  */
                                  bics.  */
-                              return 956;
+                              return 977;
                             }
                         }
                     }
                             }
                         }
                     }
@@ -3127,35 +3358,35 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx01100x00x
+                                 x00x00110xxxxxxxxxxxxxxxxxxxxxxx
                                  sbfm.  */
                                  sbfm.  */
-                              return 609;
+                              return 612;
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxxx01100x01x
+                                 x10x00110xxxxxxxxxxxxxxxxxxxxxxx
                                  ubfm.  */
                                  ubfm.  */
-                              return 620;
+                              return 623;
                             }
                         }
                       else
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                             }
                         }
                       else
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxx01100x1xx
+                             xx1x00110xxxxxxxxxxxxxxxxxxxxxxx
                              bfm.  */
                              bfm.  */
-                          return 616;
+                          return 619;
                         }
                     }
                   else
                     {
                       /* 33222222222211111111110000000000
                          10987654321098765432109876543210
                         }
                     }
                   else
                     {
                       /* 33222222222211111111110000000000
                          10987654321098765432109876543210
-                         xxxxxxxxxxxxxxxxxxxxxxx11100xxxx
+                         xxxx00111xxxxxxxxxxxxxxxxxxxxxxx
                          extr.  */
                          extr.  */
-                      return 731;
+                      return 746;
                     }
                 }
               else
                     }
                 }
               else
@@ -3170,7 +3401,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx1101000x
+                                     x0001011xx0xxxxxxxxxxxxxxxxxxxxx
                                      add.  */
                                   return 19;
                                 }
                                      add.  */
                                   return 19;
                                 }
@@ -3178,7 +3409,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx1101001x
+                                     x1001011xx0xxxxxxxxxxxxxxxxxxxxx
                                      sub.  */
                                   return 22;
                                 }
                                      sub.  */
                                   return 22;
                                 }
@@ -3189,7 +3420,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx1101010x
+                                     x0101011xx0xxxxxxxxxxxxxxxxxxxxx
                                      adds.  */
                                   return 20;
                                 }
                                      adds.  */
                                   return 20;
                                 }
@@ -3197,7 +3428,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxx0xx1101011x
+                                     x1101011xx0xxxxxxxxxxxxxxxxxxxxx
                                      subs.  */
                                   return 24;
                                 }
                                      subs.  */
                                   return 24;
                                 }
@@ -3211,9 +3442,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxx0xxxxx00x11011xxx
+                                     xxx11011x00xxxxx0xxxxxxxxxxxxxxx
                                      madd.  */
                                      madd.  */
-                                  return 709;
+                                  return 724;
                                 }
                               else
                                 {
                                 }
                               else
                                 {
@@ -3221,17 +3452,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx0xxxxx01011011xxx
+                                         xxx11011010xxxxx0xxxxxxxxxxxxxxx
                                          smulh.  */
                                          smulh.  */
-                                      return 717;
+                                      return 732;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx0xxxxx01111011xxx
+                                         xxx11011110xxxxx0xxxxxxxxxxxxxxx
                                          umulh.  */
                                          umulh.  */
-                                      return 722;
+                                      return 737;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -3239,9 +3470,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxx1xxxxx0xx11011xxx
+                                 xxx11011xx0xxxxx1xxxxxxxxxxxxxxx
                                  msub.  */
                                  msub.  */
-                              return 711;
+                              return 726;
                             }
                         }
                     }
                             }
                         }
                     }
@@ -3257,7 +3488,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx1x01101000x
+                                         x00010110x1xxxxxxxxxxxxxxxxxxxxx
                                          add.  */
                                       return 6;
                                     }
                                          add.  */
                                       return 6;
                                     }
@@ -3265,7 +3496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx1x01101001x
+                                         x10010110x1xxxxxxxxxxxxxxxxxxxxx
                                          sub.  */
                                       return 9;
                                     }
                                          sub.  */
                                       return 9;
                                     }
@@ -3276,7 +3507,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx1x01101010x
+                                         x01010110x1xxxxxxxxxxxxxxxxxxxxx
                                          adds.  */
                                       return 7;
                                     }
                                          adds.  */
                                       return 7;
                                     }
@@ -3284,7 +3515,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx1x01101011x
+                                         x11010110x1xxxxxxxxxxxxxxxxxxxxx
                                          subs.  */
                                       return 10;
                                     }
                                          subs.  */
                                       return 10;
                                     }
@@ -3296,17 +3527,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxx0xxxxx1x011011xxx
+                                     xxx110110x1xxxxx0xxxxxxxxxxxxxxx
                                      smaddl.  */
                                      smaddl.  */
-                                  return 713;
+                                  return 728;
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxx1xxxxx1x011011xxx
+                                     xxx110110x1xxxxx1xxxxxxxxxxxxxxx
                                      smsubl.  */
                                      smsubl.  */
-                                  return 715;
+                                  return 730;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -3316,17 +3547,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxx0xxxxx1x11101xxxx
+                                 xxxx10111x1xxxxx0xxxxxxxxxxxxxxx
                                  umaddl.  */
                                  umaddl.  */
-                              return 718;
+                              return 733;
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             }
                           else
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxx1xxxxx1x11101xxxx
+                                 xxxx10111x1xxxxx1xxxxxxxxxxxxxxx
                                  umsubl.  */
                                  umsubl.  */
-                              return 720;
+                              return 735;
                             }
                         }
                     }
                             }
                         }
                     }
@@ -3342,9 +3573,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
             {
               if (((word >> 24) & 0x1) == 0)
                 {
             {
               if (((word >> 24) & 0x1) == 0)
                 {
-                  if (((word >> 13) & 0x1) == 0)
+                  if (((word >> 29) & 0x1) == 0)
                     {
                     {
-                      if (((word >> 29) & 0x1) == 0)
+                      if (((word >> 13) & 0x1) == 0)
                         {
                           if (((word >> 14) & 0x1) == 0)
                             {
                         {
                           if (((word >> 14) & 0x1) == 0)
                             {
@@ -3368,17 +3599,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000000000xx0x100000
+                                                                     000001x0xx000000000xxxxxxxxxxxxx
                                                                      add.  */
                                                                      add.  */
-                                                                  return 1211;
+                                                                  return 1232;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000000010xx0x100000
+                                                                     000001x0xx010000000xxxxxxxxxxxxx
                                                                      mul.  */
                                                                      mul.  */
-                                                                  return 1637;
+                                                                  return 1685;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -3387,17 +3618,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000000100xx0x100000
+                                                                     000001x0xx001000000xxxxxxxxxxxxx
                                                                      smax.  */
                                                                      smax.  */
-                                                                  return 1710;
+                                                                  return 1764;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000000110xx0x100000
+                                                                     000001x0xx011000000xxxxxxxxxxxxx
                                                                      orr.  */
                                                                      orr.  */
-                                                                  return 1648;
+                                                                  return 1696;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -3407,17 +3638,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0000010x0xx0x100000
+                                                                 000001x0xx0x0100000xxxxxxxxxxxxx
                                                                  sdiv.  */
                                                                  sdiv.  */
-                                                              return 1704;
+                                                              return 1755;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0000011x0xx0x100000
+                                                                 000001x0xx0x1100000xxxxxxxxxxxxx
                                                                  sabd.  */
                                                                  sabd.  */
-                                                              return 1698;
+                                                              return 1746;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -3429,9 +3660,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0000100x0xx0x100000
+                                                                 000001x0xx0x0010000xxxxxxxxxxxxx
                                                                  smulh.  */
                                                                  smulh.  */
-                                                              return 1715;
+                                                              return 1769;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -3439,17 +3670,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000010100xx0x100000
+                                                                     000001x0xx001010000xxxxxxxxxxxxx
                                                                      smin.  */
                                                                      smin.  */
-                                                                  return 1713;
+                                                                  return 1767;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000010110xx0x100000
+                                                                     000001x0xx011010000xxxxxxxxxxxxx
                                                                      and.  */
                                                                      and.  */
-                                                                  return 1219;
+                                                                  return 1240;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -3457,9 +3688,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx000011xx0xx0x100000
+                                                             000001x0xx0xx110000xxxxxxxxxxxxx
                                                              sdivr.  */
                                                              sdivr.  */
-                                                          return 1705;
+                                                          return 1756;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -3473,9 +3704,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0001000x0xx0x100000
+                                                                 000001x0xx0x0001000xxxxxxxxxxxxx
                                                                  sub.  */
                                                                  sub.  */
-                                                              return 1831;
+                                                              return 1885;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -3483,17 +3714,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000100100xx0x100000
+                                                                     000001x0xx001001000xxxxxxxxxxxxx
                                                                      umax.  */
                                                                      umax.  */
-                                                                  return 1853;
+                                                                  return 1913;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000100110xx0x100000
+                                                                     000001x0xx011001000xxxxxxxxxxxxx
                                                                      eor.  */
                                                                      eor.  */
-                                                                  return 1306;
+                                                                  return 1327;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -3503,17 +3734,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0001010x0xx0x100000
+                                                                 000001x0xx0x0101000xxxxxxxxxxxxx
                                                                  udiv.  */
                                                                  udiv.  */
-                                                              return 1850;
+                                                              return 1907;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0001011x0xx0x100000
+                                                                 000001x0xx0x1101000xxxxxxxxxxxxx
                                                                  uabd.  */
                                                                  uabd.  */
-                                                              return 1844;
+                                                              return 1898;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -3527,17 +3758,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000110000xx0x100000
+                                                                     000001x0xx000011000xxxxxxxxxxxxx
                                                                      subr.  */
                                                                      subr.  */
-                                                                  return 1833;
+                                                                  return 1887;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000110010xx0x100000
+                                                                     000001x0xx010011000xxxxxxxxxxxxx
                                                                      umulh.  */
                                                                      umulh.  */
-                                                                  return 1858;
+                                                                  return 1918;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -3546,17 +3777,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000110100xx0x100000
+                                                                     000001x0xx001011000xxxxxxxxxxxxx
                                                                      umin.  */
                                                                      umin.  */
-                                                                  return 1856;
+                                                                  return 1916;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx000110110xx0x100000
+                                                                     000001x0xx011011000xxxxxxxxxxxxx
                                                                      bic.  */
                                                                      bic.  */
-                                                                  return 1231;
+                                                                  return 1252;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -3564,9 +3795,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx000111xx0xx0x100000
+                                                             000001x0xx0xx111000xxxxxxxxxxxxx
                                                              udivr.  */
                                                              udivr.  */
-                                                          return 1851;
+                                                          return 1908;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -3577,17 +3808,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx0x00x100001
+                                                     100001x00x0xxxxx000xxxxxxxxxxxxx
                                                      ld1sb.  */
                                                      ld1sb.  */
-                                                  return 1466;
+                                                  return 1514;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx0x10x100001
+                                                     100001x01x0xxxxx000xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                      ld1sh.  */
-                                                  return 1477;
+                                                  return 1525;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -3597,17 +3828,39 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx000xxxxxxxxxxxxx
                                                  ld1sb.  */
                                                  ld1sb.  */
-                                              return 1470;
+                                              return 1518;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxx0x10x10001x
-                                                 ld1sh.  */
-                                              return 1481;
+                                              if (((word >> 31) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 10) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         010001x01x0xxxxx000xx0xxxxxxxxxx
+                                                         sdot.  */
+                                                      return 1757;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         010001x01x0xxxxx000xx1xxxxxxxxxx
+                                                         udot.  */
+                                                      return 1909;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x01x0xxxxx000xxxxxxxxxxxxx
+                                                     ld1sh.  */
+                                                  return 1529;
+                                                }
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -3625,26 +3878,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000000xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx000000xxxxxxxxxx
                                                              add.  */
                                                              add.  */
-                                                          return 1209;
+                                                          return 1230;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001000xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx000100xxxxxxxxxx
                                                              sqadd.  */
                                                              sqadd.  */
-                                                          return 1717;
+                                                          return 1771;
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01x000xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx000x10xxxxxxxxxx
                                                          sqsub.  */
                                                          sqsub.  */
-                                                      return 1747;
+                                                      return 1801;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -3655,26 +3908,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx100000xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx000001xxxxxxxxxx
                                                              sub.  */
                                                              sub.  */
-                                                          return 1829;
+                                                          return 1883;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx101000xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx000101xxxxxxxxxx
                                                              uqadd.  */
                                                              uqadd.  */
-                                                          return 1859;
+                                                          return 1919;
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11x000xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx000x11xxxxxxxxxx
                                                          uqsub.  */
                                                          uqsub.  */
-                                                      return 1889;
+                                                      return 1949;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -3684,17 +3937,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx1x00x100001
+                                                     100001x00x1xxxxx000xxxxxxxxxxxxx
                                                      prfb.  */
                                                      prfb.  */
-                                                  return 1656;
+                                                  return 1704;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx000xxxxx1x10x100001
+                                                     100001x01x1xxxxx000xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                      ld1sh.  */
-                                                  return 1478;
+                                                  return 1526;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -3704,17 +3957,61 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxx1x00x10001x
+                                                 x10001x00x1xxxxx000xxxxxxxxxxxxx
                                                  prfb.  */
                                                  prfb.  */
-                                              return 1657;
+                                              return 1705;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxx1x10x10001x
-                                                 ld1sh.  */
-                                              return 1482;
+                                              if (((word >> 31) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 10) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0101xxxxx000xx0xxxxxxxxxx
+                                                             sdot.  */
+                                                          return 1758;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0111xxxxx000xx0xxxxxxxxxx
+                                                             sdot.  */
+                                                          return 1759;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0101xxxxx000xx1xxxxxxxxxx
+                                                             udot.  */
+                                                          return 1910;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             010001x0111xxxxx000xx1xxxxxxxxxx
+                                                             udot.  */
+                                                          return 1911;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     110001x01x1xxxxx000xxxxxxxxxxxxx
+                                                     ld1sh.  */
+                                                  return 1530;
+                                                }
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -3737,26 +4034,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010x0000xx0x100000
+                                                                 000001x0xx0000x0100xxxxxxxxxxxxx
                                                                  asr.  */
                                                                  asr.  */
-                                                              return 1227;
+                                                              return 1248;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010x0010xx0x100000
+                                                                 000001x0xx0100x0100xxxxxxxxxxxxx
                                                                  asr.  */
                                                                  asr.  */
-                                                              return 1225;
+                                                              return 1246;
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx0010x01x0xx0x100000
+                                                             000001x0xx0x10x0100xxxxxxxxxxxxx
                                                              asr.  */
                                                              asr.  */
-                                                          return 1226;
+                                                          return 1247;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -3765,17 +4062,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx0010x1x00xx0x100000
+                                                             000001x0xx00x1x0100xxxxxxxxxxxxx
                                                              asrd.  */
                                                              asrd.  */
-                                                          return 1228;
+                                                          return 1249;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx0010x1x10xx0x100000
+                                                             000001x0xx01x1x0100xxxxxxxxxxxxx
                                                              asrr.  */
                                                              asrr.  */
-                                                          return 1229;
+                                                          return 1250;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -3791,35 +4088,35 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001100000xx0x100000
+                                                                     000001x0xx000001100xxxxxxxxxxxxx
                                                                      lsr.  */
                                                                      lsr.  */
-                                                                  return 1628;
+                                                                  return 1676;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001100010xx0x100000
+                                                                     000001x0xx010001100xxxxxxxxxxxxx
                                                                      lsr.  */
                                                                      lsr.  */
-                                                                  return 1626;
+                                                                  return 1674;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011001x0xx0x100000
+                                                                 000001x0xx0x1001100xxxxxxxxxxxxx
                                                                  lsr.  */
                                                                  lsr.  */
-                                                              return 1627;
+                                                              return 1675;
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx001101xx0xx0x100000
+                                                             000001x0xx0xx101100xxxxxxxxxxxxx
                                                              lsrr.  */
                                                              lsrr.  */
-                                                          return 1629;
+                                                          return 1677;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -3832,35 +4129,35 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001110000xx0x100000
+                                                                     000001x0xx000011100xxxxxxxxxxxxx
                                                                      lsl.  */
                                                                      lsl.  */
-                                                                  return 1622;
+                                                                  return 1670;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx001110010xx0x100000
+                                                                     000001x0xx010011100xxxxxxxxxxxxx
                                                                      lsl.  */
                                                                      lsl.  */
-                                                                  return 1620;
+                                                                  return 1668;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011101x0xx0x100000
+                                                                 000001x0xx0x1011100xxxxxxxxxxxxx
                                                                  lsl.  */
                                                                  lsl.  */
-                                                              return 1621;
+                                                              return 1669;
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx001111xx0xx0x100000
+                                                             000001x0xx0xx111100xxxxxxxxxxxxx
                                                              lslr.  */
                                                              lslr.  */
-                                                          return 1623;
+                                                          return 1671;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -3873,17 +4170,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0x0001xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx1000x0xxxxxxxxxx
                                                          asr.  */
                                                          asr.  */
-                                                      return 1223;
+                                                      return 1244;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0x1001xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx1001x0xxxxxxxxxx
                                                          asr.  */
                                                          asr.  */
-                                                      return 1224;
+                                                      return 1245;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -3894,17 +4191,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx100001xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx100001xxxxxxxxxx
                                                              lsr.  */
                                                              lsr.  */
-                                                          return 1624;
+                                                          return 1672;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx101001xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx100101xxxxxxxxxx
                                                              lsr.  */
                                                              lsr.  */
-                                                          return 1625;
+                                                          return 1673;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -3913,17 +4210,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx110001xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx100011xxxxxxxxxx
                                                              lsl.  */
                                                              lsl.  */
-                                                          return 1618;
+                                                          return 1666;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx111001xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx100111xxxxxxxxxx
                                                              lsl.  */
                                                              lsl.  */
-                                                          return 1619;
+                                                          return 1667;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -3937,17 +4234,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxxx000x100001
+                                                     100001x000xxxxxx100xxxxxxxxxxxxx
                                                      ld1sb.  */
                                                      ld1sb.  */
-                                                  return 1472;
+                                                  return 1520;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxxx010x100001
+                                                     100001x010xxxxxx100xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                      ld1sh.  */
-                                                  return 1485;
+                                                  return 1533;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -3956,17 +4253,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxxx100x100001
+                                                     100001x001xxxxxx100xxxxxxxxxxxxx
                                                      ld1rb.  */
                                                      ld1rb.  */
-                                                  return 1450;
+                                                  return 1490;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxxx110x100001
+                                                     100001x011xxxxxx100xxxxxxxxxxxxx
                                                      ld1rsw.  */
                                                      ld1rsw.  */
-                                                  return 1463;
+                                                  return 1511;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -3979,17 +4276,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx100xxxxxxxxxxxxx
                                                  ld1sb.  */
                                                  ld1sb.  */
-                                              return 1471;
+                                              return 1519;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxx0x10x10001x
+                                                 x10001x01x0xxxxx100xxxxxxxxxxxxx
                                                  ld1sh.  */
                                                  ld1sh.  */
-                                              return 1483;
+                                              return 1531;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -4000,17 +4297,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxx1000x10001x
+                                                     x10001x0001xxxxx100xxxxxxxxxxxxx
                                                      ld1sb.  */
                                                      ld1sb.  */
-                                                  return 1476;
+                                                  return 1524;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxx1010x10001x
+                                                     x10001x0101xxxxx100xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                      ld1sh.  */
-                                                  return 1488;
+                                                  return 1536;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -4019,17 +4316,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxx1100x10001x
+                                                     x10001x0011xxxxx100xxxxxxxxxxxxx
                                                      prfb.  */
                                                      prfb.  */
-                                                  return 1658;
+                                                  return 1706;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxx1110x10001x
+                                                     x10001x0111xxxxx100xxxxxxxxxxxxx
                                                      ld1sh.  */
                                                      ld1sh.  */
-                                                  return 1484;
+                                                  return 1532;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -4048,9 +4345,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx0xx0x100000
+                                                 000001x0xx0xxxxx010xxxxxxxxxxxxx
                                                  mla.  */
                                                  mla.  */
-                                              return 1631;
+                                              return 1679;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -4058,17 +4355,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx0x00x100001
+                                                     100001x00x0xxxxx010xxxxxxxxxxxxx
                                                      ld1b.  */
                                                      ld1b.  */
-                                                  return 1416;
+                                                  return 1456;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx0x10x100001
+                                                     100001x01x0xxxxx010xxxxxxxxxxxxx
                                                      ld1h.  */
                                                      ld1h.  */
-                                                  return 1436;
+                                                  return 1476;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -4078,17 +4375,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx010xxxxxxxxxxxxx
                                                  ld1b.  */
                                                  ld1b.  */
-                                              return 1421;
+                                              return 1461;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx0x10x10001x
+                                                 x10001x01x0xxxxx010xxxxxxxxxxxxx
                                                  ld1h.  */
                                                  ld1h.  */
-                                              return 1441;
+                                              return 1481;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -4106,17 +4403,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000010xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx010000xxxxxxxxxx
                                                              index.  */
                                                              index.  */
-                                                          return 1407;
+                                                          return 1447;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx100010xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx010001xxxxxxxxxx
                                                              index.  */
                                                              index.  */
-                                                          return 1408;
+                                                          return 1448;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -4127,26 +4424,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxx01010xxxxx1000x100000
+                                                                 000001x0001xxxxx01010xxxxxxxxxxx
                                                                  addvl.  */
                                                                  addvl.  */
-                                                              return 1213;
+                                                              return 1234;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxx01010xxxxx1010x100000
+                                                                 000001x0101xxxxx01010xxxxxxxxxxx
                                                                  rdvl.  */
                                                                  rdvl.  */
-                                                              return 1692;
+                                                              return 1740;
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxx01010xxxxx11x0x100000
+                                                             000001x0x11xxxxx01010xxxxxxxxxxx
                                                              addpl.  */
                                                              addpl.  */
-                                                          return 1212;
+                                                          return 1233;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -4156,17 +4453,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01x010xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx010x10xxxxxxxxxx
                                                          index.  */
                                                          index.  */
-                                                      return 1409;
+                                                      return 1449;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11x010xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx010x11xxxxxxxxxx
                                                          index.  */
                                                          index.  */
-                                                      return 1406;
+                                                      return 1446;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -4176,17 +4473,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1x00x100001
+                                                     100001x00x1xxxxx010xxxxxxxxxxxxx
                                                      prfw.  */
                                                      prfw.  */
-                                                  return 1676;
+                                                  return 1724;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1x10x100001
+                                                     100001x01x1xxxxx010xxxxxxxxxxxxx
                                                      ld1h.  */
                                                      ld1h.  */
-                                                  return 1437;
+                                                  return 1477;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -4196,17 +4493,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx1x00x10001x
+                                                 x10001x00x1xxxxx010xxxxxxxxxxxxx
                                                  prfw.  */
                                                  prfw.  */
-                                              return 1678;
+                                              return 1726;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx1x10x10001x
+                                                 x10001x01x1xxxxx010xxxxxxxxxxxxx
                                                  ld1h.  */
                                                  ld1h.  */
-                                              return 1442;
+                                              return 1482;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -4221,9 +4518,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx011xxxxx0xx0x100000
+                                                 000001x0xx0xxxxx110xxxxxxxxxxxxx
                                                  mad.  */
                                                  mad.  */
-                                              return 1630;
+                                              return 1678;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -4237,9 +4534,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00x011xxxx010x0x100000
+                                                                 000001x0x010xxxx110x00xxxxxxxxxx
                                                                  sqincw.  */
                                                                  sqincw.  */
-                                                              return 1744;
+                                                              return 1798;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -4247,17 +4544,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00x011xxxx01100x100000
+                                                                     000001x00110xxxx110x00xxxxxxxxxx
                                                                      sqinch.  */
                                                                      sqinch.  */
-                                                                  return 1738;
+                                                                  return 1792;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00x011xxxx01110x100000
+                                                                     000001x01110xxxx110x00xxxxxxxxxx
                                                                      sqincd.  */
                                                                      sqincd.  */
-                                                                  return 1735;
+                                                                  return 1789;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -4267,9 +4564,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00x011xxxx110x0x100000
+                                                                 000001x0x011xxxx110x00xxxxxxxxxx
                                                                  incw.  */
                                                                  incw.  */
-                                                              return 1404;
+                                                              return 1444;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -4277,17 +4574,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00x011xxxx11100x100000
+                                                                     000001x00111xxxx110x00xxxxxxxxxx
                                                                      inch.  */
                                                                      inch.  */
-                                                                  return 1400;
+                                                                  return 1440;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00x011xxxx11110x100000
+                                                                     000001x01111xxxx110x00xxxxxxxxxx
                                                                      incd.  */
                                                                      incd.  */
-                                                                  return 1398;
+                                                                  return 1438;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -4298,9 +4595,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx01x011xxxxx10x0x100000
+                                                             000001x0x01xxxxx110x10xxxxxxxxxx
                                                              sqdecw.  */
                                                              sqdecw.  */
-                                                          return 1730;
+                                                          return 1784;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -4308,17 +4605,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx01x011xxxxx1100x100000
+                                                                 000001x0011xxxxx110x10xxxxxxxxxx
                                                                  sqdech.  */
                                                                  sqdech.  */
-                                                              return 1724;
+                                                              return 1778;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx01x011xxxxx1110x100000
+                                                                 000001x0111xxxxx110x10xxxxxxxxxx
                                                                  sqdecd.  */
                                                                  sqdecd.  */
-                                                              return 1721;
+                                                              return 1775;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -4333,9 +4630,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx10x011xxxx010x0x100000
+                                                                 000001x0x010xxxx110x01xxxxxxxxxx
                                                                  uqincw.  */
                                                                  uqincw.  */
-                                                              return 1886;
+                                                              return 1946;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -4343,17 +4640,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx10x011xxxx01100x100000
+                                                                     000001x00110xxxx110x01xxxxxxxxxx
                                                                      uqinch.  */
                                                                      uqinch.  */
-                                                                  return 1880;
+                                                                  return 1940;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx10x011xxxx01110x100000
+                                                                     000001x01110xxxx110x01xxxxxxxxxx
                                                                      uqincd.  */
                                                                      uqincd.  */
-                                                                  return 1877;
+                                                                  return 1937;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -4363,9 +4660,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx10x011xxxx110x0x100000
+                                                                 000001x0x011xxxx110x01xxxxxxxxxx
                                                                  decw.  */
                                                                  decw.  */
-                                                              return 1298;
+                                                              return 1319;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -4373,17 +4670,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx10x011xxxx11100x100000
+                                                                     000001x00111xxxx110x01xxxxxxxxxx
                                                                      dech.  */
                                                                      dech.  */
-                                                                  return 1294;
+                                                                  return 1315;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx10x011xxxx11110x100000
+                                                                     000001x01111xxxx110x01xxxxxxxxxx
                                                                      decd.  */
                                                                      decd.  */
-                                                                  return 1292;
+                                                                  return 1313;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -4394,9 +4691,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx11x011xxxxx10x0x100000
+                                                             000001x0x01xxxxx110x11xxxxxxxxxx
                                                              uqdecw.  */
                                                              uqdecw.  */
-                                                          return 1872;
+                                                          return 1932;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -4404,17 +4701,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx11x011xxxxx1100x100000
+                                                                 000001x0011xxxxx110x11xxxxxxxxxx
                                                                  uqdech.  */
                                                                  uqdech.  */
-                                                              return 1866;
+                                                              return 1926;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx11x011xxxxx1110x100000
+                                                                 000001x0111xxxxx110x11xxxxxxxxxx
                                                                  uqdecd.  */
                                                                  uqdecd.  */
-                                                              return 1863;
+                                                              return 1923;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -4431,17 +4728,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0000x100001
+                                                         100001x0000xxxxx110xxxxxxxxxxxxx
                                                          prfb.  */
                                                          prfb.  */
-                                                      return 1655;
+                                                      return 1703;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0010x100001
+                                                         100001x0100xxxxx110xxxxxxxxxxxxx
                                                          prfh.  */
                                                          prfh.  */
-                                                      return 1670;
+                                                      return 1718;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -4450,17 +4747,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx1000x100001
+                                                         100001x0001xxxxx110xxxxxxxxxxxxx
                                                          ld1b.  */
                                                          ld1b.  */
-                                                      return 1423;
+                                                      return 1463;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx1010x100001
+                                                         100001x0101xxxxx110xxxxxxxxxxxxx
                                                          ld1h.  */
                                                          ld1h.  */
-                                                      return 1445;
+                                                      return 1485;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -4470,17 +4767,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxxx100x100001
+                                                     100001x001xxxxxx110xxxxxxxxxxxxx
                                                      ld1rb.  */
                                                      ld1rb.  */
-                                                  return 1452;
+                                                  return 1492;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxxx110x100001
+                                                     100001x011xxxxxx110xxxxxxxxxxxxx
                                                      ld1rh.  */
                                                      ld1rh.  */
-                                                  return 1456;
+                                                  return 1496;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -4493,17 +4790,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx011xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx110xxxxxxxxxxxxx
                                                  ld1b.  */
                                                  ld1b.  */
-                                              return 1422;
+                                              return 1462;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx011xxxxx0x10x10001x
+                                                 x10001x01x0xxxxx110xxxxxxxxxxxxx
                                                  ld1h.  */
                                                  ld1h.  */
-                                              return 1443;
+                                              return 1483;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -4514,17 +4811,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1000x10001x
+                                                     x10001x0001xxxxx110xxxxxxxxxxxxx
                                                      ld1b.  */
                                                      ld1b.  */
-                                                  return 1428;
+                                                  return 1468;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1010x10001x
+                                                     x10001x0101xxxxx110xxxxxxxxxxxxx
                                                      ld1h.  */
                                                      ld1h.  */
-                                                  return 1449;
+                                                  return 1489;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -4533,17 +4830,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1100x10001x
+                                                     x10001x0011xxxxx110xxxxxxxxxxxxx
                                                      prfw.  */
                                                      prfw.  */
-                                                  return 1679;
+                                                  return 1727;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1110x10001x
+                                                     x10001x0111xxxxx110xxxxxxxxxxxxx
                                                      ld1h.  */
                                                      ld1h.  */
-                                                  return 1444;
+                                                  return 1484;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -4553,683 +4850,254 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         }
                       else
                         {
                         }
                       else
                         {
-                          if (((word >> 21) & 0x1) == 0)
+                          if (((word >> 14) & 0x1) == 0)
                             {
                               if (((word >> 15) & 0x1) == 0)
                                 {
                             {
                               if (((word >> 15) & 0x1) == 0)
                                 {
-                                  if (((word >> 14) & 0x1) == 0)
-                                    {
-                                      if (((word >> 4) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxx0xxxxxxxx000xxxxx0xx0x1001xx
-                                             cmphs.  */
-                                          return 1264;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxx1xxxxxxxx000xxxxx0xx0x1001xx
-                                             cmphi.  */
-                                          return 1261;
-                                        }
-                                    }
-                                  else
+                                  if (((word >> 21) & 0x1) == 0)
                                     {
                                       if (((word >> 30) & 0x1) == 0)
                                         {
                                           if (((word >> 31) & 0x1) == 0)
                                             {
                                     {
                                       if (((word >> 30) & 0x1) == 0)
                                         {
                                           if (((word >> 31) & 0x1) == 0)
                                             {
-                                              if (((word >> 4) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx010xxxxx0xx0x100100
-                                                     cmpge.  */
-                                                  return 1255;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx010xxxxx0xx0x100100
-                                                     cmpgt.  */
-                                                  return 1258;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 17) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 19) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0000x100101
-                                                         ld1b.  */
-                                                      return 1417;
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 16) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx000x00001xxxxxxxxxxxxx
+                                                                 saddv.  */
+                                                              return 1747;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx000x01001xxxxxxxxxxxxx
+                                                                 uaddv.  */
+                                                              return 1899;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx010x0x001xxxxxxxxxxxxx
+                                                             movprfx.  */
+                                                          return 1682;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0010x100101
-                                                         ld1sw.  */
-                                                      return 1489;
+                                                      if (((word >> 16) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx001x00001xxxxxxxxxxxxx
+                                                                 smaxv.  */
+                                                              return 1765;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx011x00001xxxxxxxxxxxxx
+                                                                 orv.  */
+                                                              return 1699;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx001x01001xxxxxxxxxxxxx
+                                                                 umaxv.  */
+                                                              return 1914;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x0xx011x01001xxxxxxxxxxxxx
+                                                                 eorv.  */
+                                                              return 1330;
+                                                            }
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0100x100101
-                                                         ld1b.  */
-                                                      return 1419;
-                                                    }
-                                                  else
+                                                  if (((word >> 16) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx00xx10001xxxxxxxxxxxxx
+                                                             sminv.  */
+                                                          return 1768;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x0xx01xx10001xxxxxxxxxxxxx
+                                                             andv.  */
+                                                          return 1243;
+                                                        }
+                                                    }
+                                                  else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0110x100101
-                                                         ld1h.  */
-                                                      return 1439;
+                                                         000001x0xx0xxx11001xxxxxxxxxxxxx
+                                                         uminv.  */
+                                                      return 1917;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx00x0x10011x
-                                                 st1b.  */
-                                              return 1749;
-                                            }
                                           else
                                             {
                                               if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                           else
                                             {
                                               if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx0100x10011x
-                                                     st1b.  */
-                                                  return 1753;
+                                                     100001x00x0xxxxx001xxxxxxxxxxxxx
+                                                     ldff1sb.  */
+                                                  return 1606;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx0110x10011x
-                                                     st1h.  */
-                                                  return 1774;
+                                                     100001x01x0xxxxx001xxxxxxxxxxxxx
+                                                     ldff1sh.  */
+                                                  return 1614;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 30) & 0x1) == 0)
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      else
                                         {
                                         {
-                                          if (((word >> 4) & 0x1) == 0)
+                                          if (((word >> 23) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx0xxxxxxxx001xxxxx0xx0x10010x
-                                                 cmpge.  */
-                                              return 1256;
+                                                 x10001x00x0xxxxx001xxxxxxxxxxxxx
+                                                 ldff1sb.  */
+                                              return 1610;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx1xxxxxxxx001xxxxx0xx0x10010x
-                                                 cmpgt.  */
-                                              return 1259;
+                                                 x10001x01x0xxxxx001xxxxxxxxxxxxx
+                                                 ldff1sh.  */
+                                              return 1618;
                                             }
                                         }
                                             }
                                         }
-                                      else
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 23) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 31) & 0x1) == 0)
-                                            {
-                                              if (((word >> 4) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx011xxxxx0xx0x100100
-                                                     cmphs.  */
-                                                  return 1265;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx011xxxxx0xx0x100100
-                                                     cmphi.  */
-                                                  return 1262;
-                                                }
-                                            }
-                                          else
+                                          if (((word >> 30) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0000x100101
-                                                         ldnt1b.  */
-                                                      return 1608;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0010x100101
-                                                         ldnt1h.  */
-                                                      return 1612;
-                                                    }
-                                                }
-                                              else
+                                              if (((word >> 31) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 22) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0100x100101
-                                                         ld3b.  */
-                                                      return 1516;
+                                                         000001x0001xxxxx001xxxxxxxxxxxxx
+                                                         and.  */
+                                                      return 1238;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0110x100101
-                                                         ld3h.  */
-                                                      return 1520;
+                                                         000001x0011xxxxx001xxxxxxxxxxxxx
+                                                         orr.  */
+                                                      return 1694;
                                                     }
                                                 }
                                                     }
                                                 }
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 22) & 0x1) == 0)
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x1xxxxx0000x10011x
-                                                 st1b.  */
-                                              return 1750;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x1xxxxx0010x10011x
-                                                 st1h.  */
-                                              return 1769;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x1xxxxx0100x10011x
-                                                 st1b.  */
-                                              return 1754;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x1xxxxx0110x10011x
-                                                 st1h.  */
-                                              return 1775;
-                                            }
-                                        }
-                                    }
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 30) & 0x1) == 0)
-                                {
-                                  if (((word >> 31) & 0x1) == 0)
-                                    {
-                                      if (((word >> 4) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxx0xxxxxxxx0xxxxxxx1xx0x100100
-                                             cmphs.  */
-                                          return 1266;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxx1xxxxxxxx0xxxxxxx1xx0x100100
-                                             cmphi.  */
-                                          return 1263;
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 15) & 0x1) == 0)
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x0xxxxx1000x100101
-                                                     ld1b.  */
-                                                  return 1418;
-                                                }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x0xxxxx1010x100101
-                                                     ld1h.  */
-                                                  return 1438;
+                                                     100001x00x1xxxxx001xxxxxxxxxxxxx
+                                                     prfh.  */
+                                                  return 1717;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x0xxxxx1100x100101
-                                                     ld1b.  */
-                                                  return 1420;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x0xxxxx1110x100101
-                                                     ld1h.  */
-                                                  return 1440;
-                                                }
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x10001x00x1xxxxx001xxxxxxxxxxxxx
+                                                 prfh.  */
+                                              return 1719;
                                             }
                                         }
                                       else
                                         {
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 30) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 31) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx1000x100101
-                                                     ld2b.  */
-                                                  return 1508;
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x0101xxxxx001xxxxxxxxxxxxx
+                                                         eor.  */
+                                                      return 1325;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x0111xxxxx001xxxxxxxxxxxxx
+                                                         bic.  */
+                                                      return 1251;
+                                                    }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx1010x100101
-                                                     ld2h.  */
-                                                  return 1512;
+                                                     100001x01x1xxxxx001xxxxxxxxxxxxx
+                                                     ldff1sh.  */
+                                                  return 1615;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx1100x100101
-                                                     ld4b.  */
-                                                  return 1524;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx0x1xxxxx1110x100101
-                                                     ld4h.  */
-                                                  return 1528;
-                                                }
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x10001x01x1xxxxx001xxxxxxxxxxxxx
+                                                 ldff1sh.  */
+                                              return 1619;
                                             }
                                         }
                                     }
                                 }
                               else
                                 {
                                             }
                                         }
                                     }
                                 }
                               else
                                 {
-                                  if (((word >> 15) & 0x1) == 0)
+                                  if (((word >> 30) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 22) & 0x1) == 0)
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x0xxxxx1000x10011x
-                                                 st1b.  */
-                                              return 1752;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x0xxxxx1010x10011x
-                                                 st1h.  */
-                                              return 1771;
-                                            }
-                                        }
-                                      else
+                                      if (((word >> 31) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x0xxxxx1100x10011x
-                                                 st1b.  */
-                                              return 1755;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x0xxxxx1110x10011x
-                                                 st1h.  */
-                                              return 1776;
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 22) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0x1xxxxx10x0x10011x
-                                             st1h.  */
-                                          return 1772;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0x1xxxxx11x0x10011x
-                                             st1h.  */
-                                          return 1777;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                    }
-                  else
-                    {
-                      if (((word >> 29) & 0x1) == 0)
-                        {
-                          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
-                                                                 xxxxxxxxxxxxx10000x000xx0x100000
-                                                                 saddv.  */
-                                                              return 1699;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx10010x000xx0x100000
-                                                                 uaddv.  */
-                                                              return 1845;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx100x0x010xx0x100000
-                                                             movprfx.  */
-                                                          return 1634;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 16) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 20) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx10000x100xx0x100000
-                                                                 smaxv.  */
-                                                              return 1711;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx10000x110xx0x100000
-                                                                 orv.  */
-                                                              return 1651;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 20) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx10010x100xx0x100000
-                                                                 umaxv.  */
-                                                              return 1854;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx10010x110xx0x100000
-                                                                 eorv.  */
-                                                              return 1309;
-                                                            }
-                                                        }
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 16) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 20) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx10001xx00xx0x100000
-                                                             sminv.  */
-                                                          return 1714;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx10001xx10xx0x100000
-                                                             andv.  */
-                                                          return 1222;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10011xxx0xx0x100000
-                                                         uminv.  */
-                                                      return 1857;
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx0x00x100001
-                                                     ldff1sb.  */
-                                                  return 1558;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx0x10x100001
-                                                     ldff1sh.  */
-                                                  return 1566;
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx100xxxxx0x00x10001x
-                                                 ldff1sb.  */
-                                              return 1562;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx100xxxxx0x10x10001x
-                                                 ldff1sh.  */
-                                              return 1570;
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 23) & 0x1) == 0)
-                                        {
-                                          if (((word >> 30) & 0x1) == 0)
-                                            {
-                                              if (((word >> 31) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 22) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100xxxxx1000x100000
-                                                         and.  */
-                                                      return 1217;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100xxxxx1100x100000
-                                                         orr.  */
-                                                      return 1646;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx1x00x100001
-                                                     prfh.  */
-                                                  return 1669;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx100xxxxx1x00x10001x
-                                                 prfh.  */
-                                              return 1671;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 30) & 0x1) == 0)
-                                            {
-                                              if (((word >> 31) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 22) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100xxxxx1010x100000
-                                                         eor.  */
-                                                      return 1304;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100xxxxx1110x100000
-                                                         bic.  */
-                                                      return 1230;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx100xxxxx1x10x100001
-                                                     ldff1sh.  */
-                                                  return 1567;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx100xxxxx1x10x10001x
-                                                 ldff1sh.  */
-                                              return 1571;
-                                            }
-                                        }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 30) & 0x1) == 0)
-                                    {
-                                      if (((word >> 31) & 0x1) == 0)
-                                        {
-                                          if (((word >> 21) & 0x1) == 0)
+                                          if (((word >> 21) & 0x1) == 0)
                                             {
                                               if (((word >> 16) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 16) & 0x1) == 0)
                                                 {
@@ -5241,17 +5109,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010000x0xx0x100000
+                                                                 000001x0xx0x0000101xxxxxxxxxxxxx
                                                                  sxtb.  */
                                                                  sxtb.  */
-                                                              return 1836;
+                                                              return 1890;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010001x0xx0x100000
+                                                                 000001x0xx0x1000101xxxxxxxxxxxxx
                                                                  cls.  */
                                                                  cls.  */
-                                                              return 1250;
+                                                              return 1271;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -5260,17 +5128,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010010x0xx0x100000
+                                                                 000001x0xx0x0100101xxxxxxxxxxxxx
                                                                  sxtw.  */
                                                                  sxtw.  */
-                                                              return 1838;
+                                                              return 1892;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010011x0xx0x100000
+                                                                 000001x0xx0x1100101xxxxxxxxxxxxx
                                                                  fabs.  */
                                                                  fabs.  */
-                                                              return 1312;
+                                                              return 1333;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -5282,17 +5150,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010100x0xx0x100000
+                                                                 000001x0xx0x0010101xxxxxxxxxxxxx
                                                                  sxth.  */
                                                                  sxth.  */
-                                                              return 1837;
+                                                              return 1891;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010101x0xx0x100000
+                                                                 000001x0xx0x1010101xxxxxxxxxxxxx
                                                                  cnt.  */
                                                                  cnt.  */
-                                                              return 1279;
+                                                              return 1300;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -5301,17 +5169,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010110x0xx0x100000
+                                                                 000001x0xx0x0110101xxxxxxxxxxxxx
                                                                  abs.  */
                                                                  abs.  */
-                                                              return 1208;
+                                                              return 1229;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1010111x0xx0x100000
+                                                                 000001x0xx0x1110101xxxxxxxxxxxxx
                                                                  not.  */
                                                                  not.  */
-                                                              return 1643;
+                                                              return 1691;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -5326,17 +5194,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1011000x0xx0x100000
+                                                                 000001x0xx0x0001101xxxxxxxxxxxxx
                                                                  uxtb.  */
                                                                  uxtb.  */
-                                                              return 1893;
+                                                              return 1953;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1011001x0xx0x100000
+                                                                 000001x0xx0x1001101xxxxxxxxxxxxx
                                                                  clz.  */
                                                                  clz.  */
-                                                              return 1251;
+                                                              return 1272;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -5345,17 +5213,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1011010x0xx0x100000
+                                                                 000001x0xx0x0101101xxxxxxxxxxxxx
                                                                  uxtw.  */
                                                                  uxtw.  */
-                                                              return 1895;
+                                                              return 1955;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1011011x0xx0x100000
+                                                                 000001x0xx0x1101101xxxxxxxxxxxxx
                                                                  fneg.  */
                                                                  fneg.  */
-                                                              return 1370;
+                                                              return 1410;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -5367,26 +5235,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1011100x0xx0x100000
+                                                                 000001x0xx0x0011101xxxxxxxxxxxxx
                                                                  uxth.  */
                                                                  uxth.  */
-                                                              return 1894;
+                                                              return 1954;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx1011101x0xx0x100000
+                                                                 000001x0xx0x1011101xxxxxxxxxxxxx
                                                                  cnot.  */
                                                                  cnot.  */
-                                                              return 1278;
+                                                              return 1299;
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101111xx0xx0x100000
+                                                             000001x0xx0xx111101xxxxxxxxxxxxx
                                                              neg.  */
                                                              neg.  */
-                                                          return 1640;
+                                                          return 1688;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -5401,26 +5269,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxx0101xxxxx1000x100000
+                                                             000001x0001xxxxx1010xxxxxxxxxxxx
                                                              adr.  */
                                                              adr.  */
-                                                          return 1214;
+                                                          return 1235;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxx0101xxxxx1100x100000
+                                                             000001x0011xxxxx1010xxxxxxxxxxxx
                                                              adr.  */
                                                              adr.  */
-                                                          return 1215;
+                                                          return 1236;
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxx0101xxxxx1x10x100000
+                                                         000001x01x1xxxxx1010xxxxxxxxxxxx
                                                          adr.  */
                                                          adr.  */
-                                                      return 1216;
+                                                      return 1237;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -5431,26 +5299,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001101xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx101100xxxxxxxxxx
                                                              ftssel.  */
                                                              ftssel.  */
-                                                          return 1396;
+                                                          return 1436;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx011101xxxxx1xx0x100000
+                                                             000001x0xx1xxxxx101110xxxxxxxxxx
                                                              fexpa.  */
                                                              fexpa.  */
-                                                          return 1349;
+                                                          return 1380;
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1x1101xxxxx1xx0x100000
+                                                         000001x0xx1xxxxx1011x1xxxxxxxxxx
                                                          movprfx.  */
                                                          movprfx.  */
-                                                      return 1633;
+                                                      return 1681;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -5463,17 +5331,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxxx000x100001
+                                                     100001x000xxxxxx101xxxxxxxxxxxxx
                                                      ldff1sb.  */
                                                      ldff1sb.  */
-                                                  return 1564;
+                                                  return 1612;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxxx010x100001
+                                                     100001x010xxxxxx101xxxxxxxxxxxxx
                                                      ldff1sh.  */
                                                      ldff1sh.  */
-                                                  return 1574;
+                                                  return 1622;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -5482,17 +5350,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxxx100x100001
+                                                     100001x001xxxxxx101xxxxxxxxxxxxx
                                                      ld1rb.  */
                                                      ld1rb.  */
-                                                  return 1451;
+                                                  return 1491;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxxx110x100001
+                                                     100001x011xxxxxx101xxxxxxxxxxxxx
                                                      ld1rh.  */
                                                      ld1rh.  */
-                                                  return 1455;
+                                                  return 1495;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -5505,17 +5373,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx101xxxxxxxxxxxxx
                                                  ldff1sb.  */
                                                  ldff1sb.  */
-                                              return 1563;
+                                              return 1611;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxx0x10x10001x
+                                                 x10001x01x0xxxxx101xxxxxxxxxxxxx
                                                  ldff1sh.  */
                                                  ldff1sh.  */
-                                              return 1572;
+                                              return 1620;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -5526,17 +5394,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1000x10001x
+                                                     x10001x0001xxxxx101xxxxxxxxxxxxx
                                                      ldff1sb.  */
                                                      ldff1sb.  */
-                                                  return 1565;
+                                                  return 1613;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1010x10001x
+                                                     x10001x0101xxxxx101xxxxxxxxxxxxx
                                                      ldff1sh.  */
                                                      ldff1sh.  */
-                                                  return 1575;
+                                                  return 1623;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -5545,17 +5413,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1100x10001x
+                                                     x10001x0011xxxxx101xxxxxxxxxxxxx
                                                      prfh.  */
                                                      prfh.  */
-                                                  return 1672;
+                                                  return 1720;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1110x10001x
+                                                     x10001x0111xxxxx101xxxxxxxxxxxxx
                                                      ldff1sh.  */
                                                      ldff1sh.  */
-                                                  return 1573;
+                                                  return 1621;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -5574,9 +5442,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx0xx0x100000
+                                                 000001x0xx0xxxxx011xxxxxxxxxxxxx
                                                  mls.  */
                                                  mls.  */
-                                              return 1632;
+                                              return 1680;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -5584,17 +5452,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx0x00x100001
+                                                     100001x00x0xxxxx011xxxxxxxxxxxxx
                                                      ldff1b.  */
                                                      ldff1b.  */
-                                                  return 1532;
+                                                  return 1580;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx0x10x100001
+                                                     100001x01x0xxxxx011xxxxxxxxxxxxx
                                                      ldff1h.  */
                                                      ldff1h.  */
-                                                  return 1547;
+                                                  return 1595;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -5604,17 +5472,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx0x00x10001x
+                                                 x10001x00x0xxxxx011xxxxxxxxxxxxx
                                                  ldff1b.  */
                                                  ldff1b.  */
-                                              return 1537;
+                                              return 1585;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx0x10x10001x
+                                                 x10001x01x0xxxxx011xxxxxxxxxxxxx
                                                  ldff1h.  */
                                                  ldff1h.  */
-                                              return 1552;
+                                              return 1600;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -5626,17 +5494,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1x00x10000x
+                                                 x00001x00x1xxxxx011xxxxxxxxxxxxx
                                                  prfd.  */
                                                  prfd.  */
-                                              return 1662;
+                                              return 1710;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1x00x10001x
+                                                 x10001x00x1xxxxx011xxxxxxxxxxxxx
                                                  prfd.  */
                                                  prfd.  */
-                                              return 1664;
+                                              return 1712;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -5645,17 +5513,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1x10x10000x
+                                                 x00001x01x1xxxxx011xxxxxxxxxxxxx
                                                  ldff1h.  */
                                                  ldff1h.  */
-                                              return 1548;
+                                              return 1596;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1x10x10001x
+                                                 x10001x01x1xxxxx011xxxxxxxxxxxxx
                                                  ldff1h.  */
                                                  ldff1h.  */
-                                              return 1553;
+                                              return 1601;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -5670,9 +5538,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx111xxxxx0xx0x100000
+                                                 000001x0xx0xxxxx111xxxxxxxxxxxxx
                                                  msb.  */
                                                  msb.  */
-                                              return 1635;
+                                              return 1683;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -5690,17 +5558,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx01000x100000
+                                                                         000001x00010xxxx111000xxxxxxxxxx
                                                                          cntb.  */
                                                                          cntb.  */
-                                                                      return 1280;
+                                                                      return 1301;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx01010x100000
+                                                                         000001x01010xxxx111000xxxxxxxxxx
                                                                          cntw.  */
                                                                          cntw.  */
-                                                                      return 1284;
+                                                                      return 1305;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -5709,17 +5577,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx01100x100000
+                                                                         000001x00110xxxx111000xxxxxxxxxx
                                                                          cnth.  */
                                                                          cnth.  */
-                                                                      return 1282;
+                                                                      return 1303;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx01110x100000
+                                                                         000001x01110xxxx111000xxxxxxxxxx
                                                                          cntd.  */
                                                                          cntd.  */
-                                                                      return 1281;
+                                                                      return 1302;
                                                                     }
                                                                 }
                                                             }
                                                                     }
                                                                 }
                                                             }
@@ -5731,17 +5599,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx11000x100000
+                                                                         000001x00011xxxx111000xxxxxxxxxx
                                                                          incb.  */
                                                                          incb.  */
-                                                                      return 1397;
+                                                                      return 1437;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx11010x100000
+                                                                         000001x01011xxxx111000xxxxxxxxxx
                                                                          incw.  */
                                                                          incw.  */
-                                                                      return 1405;
+                                                                      return 1445;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -5750,17 +5618,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx11100x100000
+                                                                         000001x00111xxxx111000xxxxxxxxxx
                                                                          inch.  */
                                                                          inch.  */
-                                                                      return 1401;
+                                                                      return 1441;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx000111xxxx11110x100000
+                                                                         000001x01111xxxx111000xxxxxxxxxx
                                                                          incd.  */
                                                                          incd.  */
-                                                                      return 1399;
+                                                                      return 1439;
                                                                     }
                                                                 }
                                                             }
                                                                     }
                                                                 }
                                                             }
@@ -5775,17 +5643,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx01000x100000
+                                                                         000001x00010xxxx111100xxxxxxxxxx
                                                                          sqincb.  */
                                                                          sqincb.  */
-                                                                      return 1734;
+                                                                      return 1788;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx01010x100000
+                                                                         000001x01010xxxx111100xxxxxxxxxx
                                                                          sqincw.  */
                                                                          sqincw.  */
-                                                                      return 1746;
+                                                                      return 1800;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -5794,17 +5662,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx01100x100000
+                                                                         000001x00110xxxx111100xxxxxxxxxx
                                                                          sqinch.  */
                                                                          sqinch.  */
-                                                                      return 1740;
+                                                                      return 1794;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx01110x100000
+                                                                         000001x01110xxxx111100xxxxxxxxxx
                                                                          sqincd.  */
                                                                          sqincd.  */
-                                                                      return 1737;
+                                                                      return 1791;
                                                                     }
                                                                 }
                                                             }
                                                                     }
                                                                 }
                                                             }
@@ -5816,17 +5684,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx11000x100000
+                                                                         000001x00011xxxx111100xxxxxxxxxx
                                                                          sqincb.  */
                                                                          sqincb.  */
-                                                                      return 1733;
+                                                                      return 1787;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx11010x100000
+                                                                         000001x01011xxxx111100xxxxxxxxxx
                                                                          sqincw.  */
                                                                          sqincw.  */
-                                                                      return 1745;
+                                                                      return 1799;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -5835,17 +5703,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx11100x100000
+                                                                         000001x00111xxxx111100xxxxxxxxxx
                                                                          sqinch.  */
                                                                          sqinch.  */
-                                                                      return 1739;
+                                                                      return 1793;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx001111xxxx11110x100000
+                                                                         000001x01111xxxx111100xxxxxxxxxx
                                                                          sqincd.  */
                                                                          sqincd.  */
-                                                                      return 1736;
+                                                                      return 1790;
                                                                     }
                                                                 }
                                                             }
                                                                     }
                                                                 }
                                                             }
@@ -5861,17 +5729,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx01000x100000
+                                                                     000001x00010xxxx111x10xxxxxxxxxx
                                                                      sqdecb.  */
                                                                      sqdecb.  */
-                                                                  return 1720;
+                                                                  return 1774;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx01010x100000
+                                                                     000001x01010xxxx111x10xxxxxxxxxx
                                                                      sqdecw.  */
                                                                      sqdecw.  */
-                                                                  return 1732;
+                                                                  return 1786;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -5880,17 +5748,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx01100x100000
+                                                                     000001x00110xxxx111x10xxxxxxxxxx
                                                                      sqdech.  */
                                                                      sqdech.  */
-                                                                  return 1726;
+                                                                  return 1780;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx01110x100000
+                                                                     000001x01110xxxx111x10xxxxxxxxxx
                                                                      sqdecd.  */
                                                                      sqdecd.  */
-                                                                  return 1723;
+                                                                  return 1777;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -5902,17 +5770,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx11000x100000
+                                                                     000001x00011xxxx111x10xxxxxxxxxx
                                                                      sqdecb.  */
                                                                      sqdecb.  */
-                                                                  return 1719;
+                                                                  return 1773;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx11010x100000
+                                                                     000001x01011xxxx111x10xxxxxxxxxx
                                                                      sqdecw.  */
                                                                      sqdecw.  */
-                                                                  return 1731;
+                                                                  return 1785;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -5921,17 +5789,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx11100x100000
+                                                                     000001x00111xxxx111x10xxxxxxxxxx
                                                                      sqdech.  */
                                                                      sqdech.  */
-                                                                  return 1725;
+                                                                  return 1779;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01x111xxxx11110x100000
+                                                                     000001x01111xxxx111x10xxxxxxxxxx
                                                                      sqdecd.  */
                                                                      sqdecd.  */
-                                                                  return 1722;
+                                                                  return 1776;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -5949,17 +5817,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx100111xxxxx1000x100000
+                                                                     000001x0001xxxxx111001xxxxxxxxxx
                                                                      decb.  */
                                                                      decb.  */
-                                                                  return 1291;
+                                                                  return 1312;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx100111xxxxx1010x100000
+                                                                     000001x0101xxxxx111001xxxxxxxxxx
                                                                      decw.  */
                                                                      decw.  */
-                                                                  return 1299;
+                                                                  return 1320;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -5968,17 +5836,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx100111xxxxx1100x100000
+                                                                     000001x0011xxxxx111001xxxxxxxxxx
                                                                      dech.  */
                                                                      dech.  */
-                                                                  return 1295;
+                                                                  return 1316;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx100111xxxxx1110x100000
+                                                                     000001x0111xxxxx111001xxxxxxxxxx
                                                                      decd.  */
                                                                      decd.  */
-                                                                  return 1293;
+                                                                  return 1314;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -5992,17 +5860,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx01000x100000
+                                                                         000001x00010xxxx111101xxxxxxxxxx
                                                                          uqincb.  */
                                                                          uqincb.  */
-                                                                      return 1875;
+                                                                      return 1935;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx01010x100000
+                                                                         000001x01010xxxx111101xxxxxxxxxx
                                                                          uqincw.  */
                                                                          uqincw.  */
-                                                                      return 1887;
+                                                                      return 1947;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -6011,17 +5879,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx01100x100000
+                                                                         000001x00110xxxx111101xxxxxxxxxx
                                                                          uqinch.  */
                                                                          uqinch.  */
-                                                                      return 1881;
+                                                                      return 1941;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx01110x100000
+                                                                         000001x01110xxxx111101xxxxxxxxxx
                                                                          uqincd.  */
                                                                          uqincd.  */
-                                                                      return 1878;
+                                                                      return 1938;
                                                                     }
                                                                 }
                                                             }
                                                                     }
                                                                 }
                                                             }
@@ -6033,17 +5901,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx11000x100000
+                                                                         000001x00011xxxx111101xxxxxxxxxx
                                                                          uqincb.  */
                                                                          uqincb.  */
-                                                                      return 1876;
+                                                                      return 1936;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx11010x100000
+                                                                         000001x01011xxxx111101xxxxxxxxxx
                                                                          uqincw.  */
                                                                          uqincw.  */
-                                                                      return 1888;
+                                                                      return 1948;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -6052,17 +5920,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx11100x100000
+                                                                         000001x00111xxxx111101xxxxxxxxxx
                                                                          uqinch.  */
                                                                          uqinch.  */
-                                                                      return 1882;
+                                                                      return 1942;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx101111xxxx11110x100000
+                                                                         000001x01111xxxx111101xxxxxxxxxx
                                                                          uqincd.  */
                                                                          uqincd.  */
-                                                                      return 1879;
+                                                                      return 1939;
                                                                     }
                                                                 }
                                                             }
                                                                     }
                                                                 }
                                                             }
@@ -6078,17 +5946,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx01000x100000
+                                                                     000001x00010xxxx111x11xxxxxxxxxx
                                                                      uqdecb.  */
                                                                      uqdecb.  */
-                                                                  return 1861;
+                                                                  return 1921;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx01010x100000
+                                                                     000001x01010xxxx111x11xxxxxxxxxx
                                                                      uqdecw.  */
                                                                      uqdecw.  */
-                                                                  return 1873;
+                                                                  return 1933;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -6097,17 +5965,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx01100x100000
+                                                                     000001x00110xxxx111x11xxxxxxxxxx
                                                                      uqdech.  */
                                                                      uqdech.  */
-                                                                  return 1867;
+                                                                  return 1927;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx01110x100000
+                                                                     000001x01110xxxx111x11xxxxxxxxxx
                                                                      uqdecd.  */
                                                                      uqdecd.  */
-                                                                  return 1864;
+                                                                  return 1924;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -6119,17 +5987,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx11000x100000
+                                                                     000001x00011xxxx111x11xxxxxxxxxx
                                                                      uqdecb.  */
                                                                      uqdecb.  */
-                                                                  return 1862;
+                                                                  return 1922;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx11010x100000
+                                                                     000001x01011xxxx111x11xxxxxxxxxx
                                                                      uqdecw.  */
                                                                      uqdecw.  */
-                                                                  return 1874;
+                                                                  return 1934;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -6138,17 +6006,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx11100x100000
+                                                                     000001x00111xxxx111x11xxxxxxxxxx
                                                                      uqdech.  */
                                                                      uqdech.  */
-                                                                  return 1868;
+                                                                  return 1928;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx11x111xxxx11110x100000
+                                                                     000001x01111xxxx111x11xxxxxxxxxx
                                                                      uqdecd.  */
                                                                      uqdecd.  */
-                                                                  return 1865;
+                                                                  return 1925;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -6166,17 +6034,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0000x100001
+                                                         100001x0000xxxxx111xxxxxxxxxxxxx
                                                          prfb.  */
                                                          prfb.  */
-                                                      return 1659;
+                                                      return 1707;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0010x100001
+                                                         100001x0100xxxxx111xxxxxxxxxxxxx
                                                          prfh.  */
                                                          prfh.  */
-                                                      return 1673;
+                                                      return 1721;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -6185,17 +6053,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1000x100001
+                                                         100001x0001xxxxx111xxxxxxxxxxxxx
                                                          ldff1b.  */
                                                          ldff1b.  */
-                                                      return 1539;
+                                                      return 1587;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1010x100001
+                                                         100001x0101xxxxx111xxxxxxxxxxxxx
                                                          ldff1h.  */
                                                          ldff1h.  */
-                                                      return 1556;
+                                                      return 1604;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -6205,17 +6073,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxxx100x100001
+                                                     100001x001xxxxxx111xxxxxxxxxxxxx
                                                      ld1rb.  */
                                                      ld1rb.  */
-                                                  return 1453;
+                                                  return 1493;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxxx110x100001
+                                                     100001x011xxxxxx111xxxxxxxxxxxxx
                                                      ld1rh.  */
                                                      ld1rh.  */
-                                                  return 1457;
+                                                  return 1497;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -6230,17 +6098,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0000x10001x
+                                                     x10001x0000xxxxx111xxxxxxxxxxxxx
                                                      prfb.  */
                                                      prfb.  */
-                                                  return 1661;
+                                                  return 1709;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0010x10001x
+                                                     x10001x0100xxxxx111xxxxxxxxxxxxx
                                                      prfh.  */
                                                      prfh.  */
-                                                  return 1675;
+                                                  return 1723;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -6249,17 +6117,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0100x10001x
+                                                     x10001x0010xxxxx111xxxxxxxxxxxxx
                                                      ldff1b.  */
                                                      ldff1b.  */
-                                                  return 1538;
+                                                  return 1586;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0110x10001x
+                                                     x10001x0110xxxxx111xxxxxxxxxxxxx
                                                      ldff1h.  */
                                                      ldff1h.  */
-                                                  return 1554;
+                                                  return 1602;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -6271,17 +6139,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1000x10001x
+                                                     x10001x0001xxxxx111xxxxxxxxxxxxx
                                                      ldff1b.  */
                                                      ldff1b.  */
-                                                  return 1540;
+                                                  return 1588;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1010x10001x
+                                                     x10001x0101xxxxx111xxxxxxxxxxxxx
                                                      ldff1h.  */
                                                      ldff1h.  */
-                                                  return 1557;
+                                                  return 1605;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -6290,17 +6158,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1100x10001x
+                                                     x10001x0011xxxxx111xxxxxxxxxxxxx
                                                      prfd.  */
                                                      prfd.  */
-                                                  return 1665;
+                                                  return 1713;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1110x10001x
+                                                     x10001x0111xxxxx111xxxxxxxxxxxxx
                                                      ldff1h.  */
                                                      ldff1h.  */
-                                                  return 1555;
+                                                  return 1603;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -6308,34 +6176,59 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 }
                             }
                         }
                                 }
                             }
                         }
-                      else
+                    }
+                  else
+                    {
+                      if (((word >> 21) & 0x1) == 0)
                         {
                         {
-                          if (((word >> 21) & 0x1) == 0)
+                          if (((word >> 15) & 0x1) == 0)
                             {
                             {
-                              if (((word >> 14) & 0x1) == 0)
+                              if (((word >> 30) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 15) & 0x1) == 0)
+                                  if (((word >> 13) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 4) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxx0xxxxxxxx100xxxxx0xx0x1001xx
-                                             cmpeq.  */
-                                          return 1252;
-                                        }
-                                      else
+                                      if (((word >> 14) & 0x1) == 0)
                                         {
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxx1xxxxxxxx100xxxxx0xx0x1001xx
-                                             cmpne.  */
-                                          return 1275;
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx000xxxxxxxx0xxxx
+                                                     cmphs.  */
+                                                  return 1285;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx000xxxxxxxx1xxxx
+                                                     cmphi.  */
+                                                  return 1282;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x00x0xxxxx000xxxxxxxxxxxxx
+                                                     ld1rqb.  */
+                                                  return 1499;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x01x0xxxxx000xxxxxxxxxxxxx
+                                                     ld1rqh.  */
+                                                  return 1503;
+                                                }
+                                            }
                                         }
                                         }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      else
                                         {
                                           if (((word >> 31) & 0x1) == 0)
                                             {
                                         {
                                           if (((word >> 31) & 0x1) == 0)
                                             {
@@ -6343,124 +6236,83 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx101xxxxx0xx0x100100
-                                                     cmpeq.  */
-                                                  return 1253;
+                                                     001001x0xx0xxxxx010xxxxxxxx0xxxx
+                                                     cmpge.  */
+                                                  return 1276;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx101xxxxx0xx0x100100
-                                                     cmpne.  */
-                                                  return 1276;
+                                                     001001x0xx0xxxxx010xxxxxxxx1xxxx
+                                                     cmpgt.  */
+                                                  return 1279;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 20) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx00000x100101
-                                                             ld1b.  */
-                                                          return 1424;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx00010x100101
-                                                             ld1sw.  */
-                                                          return 1494;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0000xxxxx010xxxxxxxxxxxxx
+                                                         ld1b.  */
+                                                      return 1457;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx00100x100101
-                                                             ld1b.  */
-                                                          return 1426;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx00110x100101
-                                                             ld1h.  */
-                                                          return 1447;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0100xxxxx010xxxxxxxxxxxxx
+                                                         ld1sw.  */
+                                                      return 1537;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx10000x100101
-                                                             ldnf1b.  */
-                                                          return 1592;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx10010x100101
-                                                             ldnf1sw.  */
-                                                          return 1605;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0010xxxxx010xxxxxxxxxxxxx
+                                                         ld1b.  */
+                                                      return 1459;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx10100x100101
-                                                             ldnf1b.  */
-                                                          return 1594;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx101xxxx10110x100101
-                                                             ldnf1h.  */
-                                                          return 1598;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0110xxxxx010xxxxxxxxxxxxx
+                                                         ld1h.  */
+                                                      return 1479;
                                                     }
                                                 }
                                             }
                                         }
                                                     }
                                                 }
                                             }
                                         }
-                                      else
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 14) & 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
-                                                     xxxxxxxxxxxxx101xxxxx0000x10011x
-                                                     st1b.  */
-                                                  return 1751;
+                                                     001001x0xx0xxxxx001xxxxxxxx0xxxx
+                                                     cmpeq.  */
+                                                  return 1273;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx0010x10011x
-                                                     st1h.  */
-                                                  return 1770;
+                                                     001001x0xx0xxxxx001xxxxxxxx1xxxx
+                                                     cmpne.  */
+                                                  return 1296;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -6469,27 +6321,21 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx0100x10011x
-                                                     st1b.  */
-                                                  return 1758;
+                                                     101001x00x0xxxxx001xxxxxxxxxxxxx
+                                                     ld1rqb.  */
+                                                  return 1498;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx0110x10011x
-                                                     st1h.  */
-                                                  return 1779;
+                                                     101001x01x0xxxxx001xxxxxxxxxxxxx
+                                                     ld1rqh.  */
+                                                  return 1502;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 15) & 0x1) == 0)
-                                    {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      else
                                         {
                                           if (((word >> 31) & 0x1) == 0)
                                             {
                                         {
                                           if (((word >> 31) & 0x1) == 0)
                                             {
@@ -6497,17 +6343,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx110xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx011xxxxxxxx0xxxx
                                                      cmplt.  */
                                                      cmplt.  */
-                                                  return 1273;
+                                                  return 1294;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx110xxxxx0xx0x100100
+                                                     001001x0xx0xxxxx011xxxxxxxx1xxxx
                                                      cmple.  */
                                                      cmple.  */
-                                                  return 1267;
+                                                  return 1288;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -6518,17 +6364,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0000x100101
+                                                         101001x0000xxxxx011xxxxxxxxxxxxx
                                                          ldff1b.  */
                                                          ldff1b.  */
-                                                      return 1533;
+                                                      return 1581;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0010x100101
+                                                         101001x0100xxxxx011xxxxxxxxxxxxx
                                                          ldff1sw.  */
                                                          ldff1sw.  */
-                                                      return 1576;
+                                                      return 1624;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -6537,21 +6383,65 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0100x100101
+                                                         101001x0010xxxxx011xxxxxxxxxxxxx
                                                          ldff1b.  */
                                                          ldff1b.  */
-                                                      return 1535;
+                                                      return 1583;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0110x100101
+                                                         101001x0110xxxxx011xxxxxxxxxxxxx
                                                          ldff1h.  */
                                                          ldff1h.  */
-                                                      return 1550;
+                                                      return 1598;
                                                     }
                                                 }
                                             }
                                         }
                                                     }
                                                 }
                                             }
                                         }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         011001x0xx0xxxxx0xxxxxxxxxxxxxxx
+                                         fcmla.  */
+                                      return 1342;
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 13) & 0x1) == 0)
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 111001x0x00xxxxx0x0xxxxxxxxxxxxx
+                                                 st1b.  */
+                                              return 1803;
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x0010xxxxx0x0xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1807;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x0110xxxxx0x0xxxxxxxxxxxxx
+                                                     st1h.  */
+                                                  return 1828;
+                                                }
+                                            }
+                                        }
                                       else
                                         {
                                           if (((word >> 22) & 0x1) == 0)
                                       else
                                         {
                                           if (((word >> 22) & 0x1) == 0)
@@ -6560,17 +6450,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx0000x10011x
+                                                     111001x0000xxxxx0x1xxxxxxxxxxxxx
                                                      stnt1b.  */
                                                      stnt1b.  */
-                                                  return 1819;
+                                                  return 1873;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx0010x10011x
+                                                     111001x0100xxxxx0x1xxxxxxxxxxxxx
                                                      stnt1h.  */
                                                      stnt1h.  */
-                                                  return 1823;
+                                                  return 1877;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -6579,24 +6469,49 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx0100x10011x
+                                                     111001x0010xxxxx0x1xxxxxxxxxxxxx
                                                      st3b.  */
                                                      st3b.  */
-                                                  return 1803;
+                                                  return 1857;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx0110x10011x
+                                                     111001x0110xxxxx0x1xxxxxxxxxxxxx
                                                      st3h.  */
                                                      st3h.  */
-                                                  return 1807;
+                                                  return 1861;
                                                 }
                                             }
                                         }
                                     }
                                                 }
                                             }
                                         }
                                     }
-                                  else
+                                }
+                            }
+                          else
+                            {
+                              if (((word >> 13) & 0x1) == 0)
+                                {
+                                  if (((word >> 30) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      if (((word >> 14) & 0x1) == 0)
+                                        {
+                                          if (((word >> 4) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x01001x0xx0xxxxx100xxxxxxxx0xxxx
+                                                 cmpge.  */
+                                              return 1277;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x01001x0xx0xxxxx100xxxxxxxx1xxxx
+                                                 cmpgt.  */
+                                              return 1280;
+                                            }
+                                        }
+                                      else
                                         {
                                           if (((word >> 31) & 0x1) == 0)
                                             {
                                         {
                                           if (((word >> 31) & 0x1) == 0)
                                             {
@@ -6604,17 +6519,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx0xxxxxxxx111xxxxx0xx0x100100
-                                                     cmplo.  */
-                                                  return 1269;
+                                                     001001x0xx0xxxxx110xxxxxxxx0xxxx
+                                                     cmphs.  */
+                                                  return 1286;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxx111xxxxx0xx0x100100
-                                                     cmpls.  */
-                                                  return 1271;
+                                                     001001x0xx0xxxxx110xxxxxxxx1xxxx
+                                                     cmphi.  */
+                                                  return 1283;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -6625,17 +6540,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0000x100101
+                                                         101001x0000xxxxx110xxxxxxxxxxxxx
                                                          ldnt1b.  */
                                                          ldnt1b.  */
-                                                      return 1609;
+                                                      return 1656;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0010x100101
+                                                         101001x0100xxxxx110xxxxxxxxxxxxx
                                                          ldnt1h.  */
                                                          ldnt1h.  */
-                                                      return 1613;
+                                                      return 1660;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -6644,166 +6559,251 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0100x100101
+                                                         101001x0010xxxxx110xxxxxxxxxxxxx
                                                          ld3b.  */
                                                          ld3b.  */
-                                                      return 1517;
+                                                      return 1564;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0110x100101
+                                                         101001x0110xxxxx110xxxxxxxxxxxxx
                                                          ld3h.  */
                                                          ld3h.  */
-                                                      return 1521;
+                                                      return 1568;
                                                     }
                                                 }
                                             }
                                         }
                                                     }
                                                 }
                                             }
                                         }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 31) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             011001x0xx0xxxxx1x0xxxxxxxxxxxxx
+                                             fcadd.  */
+                                          return 1341;
+                                        }
                                       else
                                         {
                                       else
                                         {
-                                          if (((word >> 20) & 0x1) == 0)
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxx000x0x10011x
+                                                     111001x0000xxxxx1x0xxxxxxxxxxxxx
                                                      st1b.  */
                                                      st1b.  */
-                                                  return 1756;
+                                                  return 1804;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx00100x10011x
-                                                         st1b.  */
-                                                      return 1759;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx00110x10011x
-                                                         st1h.  */
-                                                      return 1780;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x0100xxxxx1x0xxxxxxxxxxxxx
+                                                     st1h.  */
+                                                  return 1823;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx10000x10011x
-                                                         stnt1b.  */
-                                                      return 1820;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx10010x10011x
-                                                         stnt1h.  */
-                                                      return 1824;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x0010xxxxx1x0xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1808;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx10100x10011x
-                                                         st3b.  */
-                                                      return 1804;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx10110x10011x
-                                                         st3h.  */
-                                                      return 1808;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x0110xxxxx1x0xxxxxxxxxxxxx
+                                                     st1h.  */
+                                                  return 1829;
                                                 }
                                             }
                                         }
                                     }
                                 }
                                                 }
                                             }
                                         }
                                     }
                                 }
-                            }
-                          else
-                            {
-                              if (((word >> 30) & 0x1) == 0)
+                              else
                                 {
                                 {
-                                  if (((word >> 31) & 0x1) == 0)
-                                    {
-                                      if (((word >> 4) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxx0xxxxxxxx1xxxxxxx1xx0x100100
-                                             cmplo.  */
-                                          return 1270;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxx1xxxxxxxx1xxxxxxx1xx0x100100
-                                             cmpls.  */
-                                          return 1272;
-                                        }
-                                    }
-                                  else
+                                  if (((word >> 14) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      if (((word >> 30) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 20) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 4) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx101xxxxxxxx0xxxx
+                                                     cmpeq.  */
+                                                  return 1274;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx101xxxxxxxx1xxxx
+                                                     cmpne.  */
+                                                  return 1297;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 20) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx01000x100101
-                                                         ld1b.  */
-                                                      return 1425;
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x00000xxxx101xxxxxxxxxxxxx
+                                                             ld1b.  */
+                                                          return 1464;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x01000xxxx101xxxxxxxxxxxxx
+                                                             ld1sw.  */
+                                                          return 1542;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx01010x100101
-                                                         ld1h.  */
-                                                      return 1446;
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x00100xxxx101xxxxxxxxxxxxx
+                                                             ld1b.  */
+                                                          return 1466;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x01100xxxx101xxxxxxxxxxxxx
+                                                             ld1h.  */
+                                                          return 1487;
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 22) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx01100x100101
-                                                         ld1b.  */
-                                                      return 1427;
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x00001xxxx101xxxxxxxxxxxxx
+                                                             ldnf1b.  */
+                                                          return 1640;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x01001xxxx101xxxxxxxxxxxxx
+                                                             ldnf1sw.  */
+                                                          return 1653;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx01110x100101
-                                                         ld1h.  */
-                                                      return 1448;
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x00101xxxx101xxxxxxxxxxxxx
+                                                             ldnf1b.  */
+                                                          return 1642;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             101001x01101xxxx101xxxxxxxxxxxxx
+                                                             ldnf1h.  */
+                                                          return 1646;
+                                                        }
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0000xxxxx101xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1805;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0100xxxxx101xxxxxxxxxxxxx
+                                                     st1h.  */
+                                                  return 1824;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0010xxxxx101xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1812;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0110xxxxx101xxxxxxxxxxxxx
+                                                     st1h.  */
+                                                  return 1833;
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx111xxxxxxxx0xxxx
+                                                     cmplo.  */
+                                                  return 1290;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x0xx0xxxxx111xxxxxxxx1xxxx
+                                                     cmpls.  */
+                                                  return 1292;
+                                                }
+                                            }
                                           else
                                             {
                                               if (((word >> 22) & 0x1) == 0)
                                           else
                                             {
                                               if (((word >> 22) & 0x1) == 0)
@@ -6812,17 +6812,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx11000x100101
-                                                         ldnf1b.  */
-                                                      return 1593;
+                                                         101001x0000xxxxx111xxxxxxxxxxxxx
+                                                         ldnt1b.  */
+                                                      return 1657;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx11010x100101
-                                                         ldnf1h.  */
-                                                      return 1597;
+                                                         101001x0100xxxxx111xxxxxxxxxxxxx
+                                                         ldnt1h.  */
+                                                      return 1661;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -6831,43 +6831,32 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx11100x100101
-                                                         ldnf1b.  */
-                                                      return 1595;
+                                                         101001x0010xxxxx111xxxxxxxxxxxxx
+                                                         ld3b.  */
+                                                      return 1565;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx10xxxxx11110x100101
-                                                         ldnf1h.  */
-                                                      return 1599;
+                                                         101001x0110xxxxx111xxxxxxxxxxxxx
+                                                         ld3h.  */
+                                                      return 1569;
                                                     }
                                                 }
                                             }
                                         }
                                       else
                                         {
                                                     }
                                                 }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          if (((word >> 20) & 0x1) == 0)
                                             {
                                               if (((word >> 22) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 22) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1000x100101
-                                                         ldff1b.  */
-                                                      return 1534;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1010x100101
-                                                         ldff1h.  */
-                                                      return 1549;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0x000xxxx111xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1810;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -6875,17 +6864,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1100x100101
-                                                         ldff1b.  */
-                                                      return 1536;
+                                                         x11001x00100xxxx111xxxxxxxxxxxxx
+                                                         st1b.  */
+                                                      return 1813;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1110x100101
-                                                         ldff1h.  */
-                                                      return 1551;
+                                                         x11001x01100xxxx111xxxxxxxxxxxxx
+                                                         st1h.  */
+                                                      return 1834;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -6897,17 +6886,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1000x100101
-                                                         ld2b.  */
-                                                      return 1509;
+                                                         x11001x00001xxxx111xxxxxxxxxxxxx
+                                                         stnt1b.  */
+                                                      return 1874;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1010x100101
-                                                         ld2h.  */
-                                                      return 1513;
+                                                         x11001x01001xxxx111xxxxxxxxxxxxx
+                                                         stnt1h.  */
+                                                      return 1878;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -6916,53 +6905,48 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1100x100101
-                                                         ld4b.  */
-                                                      return 1525;
+                                                         x11001x00101xxxx111xxxxxxxxxxxxx
+                                                         st3b.  */
+                                                      return 1858;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1110x100101
-                                                         ld4h.  */
-                                                      return 1529;
+                                                         x11001x01101xxxx111xxxxxxxxxxxxx
+                                                         st3h.  */
+                                                      return 1862;
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
-                              else
+                            }
+                        }
+                      else
+                        {
+                          if (((word >> 13) & 0x1) == 0)
+                            {
+                              if (((word >> 30) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 14) & 0x1) == 0)
+                                  if (((word >> 31) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 22) & 0x1) == 0)
+                                      if (((word >> 4) & 0x1) == 0)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx10xxxxxx10x0x10011x
-                                             st1h.  */
-                                          return 1773;
+                                             001001x0xx1xxxxxxx0xxxxxxxx0xxxx
+                                             cmphs.  */
+                                          return 1287;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx10xxxxxx1100x10011x
-                                                 st1b.  */
-                                              return 1760;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx10xxxxxx1110x10011x
-                                                 st1h.  */
-                                              return 1781;
-                                            }
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             001001x0xx1xxxxxxx0xxxxxxxx1xxxx
+                                             cmphi.  */
+                                          return 1284;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -6975,17 +6959,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1000x10011x
-                                                     st2b.  */
-                                                  return 1795;
+                                                     101001x0001xxxxx0x0xxxxxxxxxxxxx
+                                                     ld1b.  */
+                                                  return 1458;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1010x10011x
-                                                     st2h.  */
-                                                  return 1799;
+                                                     101001x0101xxxxx0x0xxxxxxxxxxxxx
+                                                     ld1h.  */
+                                                  return 1478;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -6994,82 +6978,99 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1100x10011x
-                                                     st4b.  */
-                                                  return 1811;
+                                                     101001x0011xxxxx0x0xxxxxxxxxxxxx
+                                                     ld1b.  */
+                                                  return 1460;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1110x10011x
-                                                     st4h.  */
-                                                  return 1815;
+                                                     101001x0111xxxxx0x0xxxxxxxxxxxxx
+                                                     ld1h.  */
+                                                  return 1480;
                                                 }
                                             }
                                         }
                                       else
                                         {
                                                 }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 20) & 0x1) == 0)
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx01000x10011x
-                                                         st1b.  */
-                                                      return 1757;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx01010x10011x
-                                                         st1h.  */
-                                                      return 1778;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x0001xxxxx1x0xxxxxxxxxxxxx
+                                                     ld2b.  */
+                                                  return 1556;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx01100x10011x
-                                                         st1b.  */
-                                                      return 1761;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx01110x10011x
-                                                         st1h.  */
-                                                      return 1782;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x0101xxxxx1x0xxxxxxxxxxxxx
+                                                     ld2h.  */
+                                                  return 1560;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x0011xxxxx1x0xxxxxxxxxxxxx
+                                                     ld4b.  */
+                                                  return 1572;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x0111xxxxx1x0xxxxxxxxxxxxx
+                                                     ld4h.  */
+                                                  return 1576;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 15) & 0x1) == 0)
+                                    {
+                                      if (((word >> 14) & 0x1) == 0)
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
+                                            {
+                                              if (((word >> 10) & 0x1) == 0)
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx11000x10011x
-                                                         st2b.  */
-                                                      return 1796;
+                                                         x11001x00x1xxxxx0000x0xxxxxxxxxx
+                                                         fmla.  */
+                                                      return 1395;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx11010x10011x
-                                                         st2h.  */
-                                                      return 1800;
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x11001x0101xxxxx0000x0xxxxxxxxxx
+                                                             fmla.  */
+                                                          return 1396;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x11001x0111xxxxx0000x0xxxxxxxxxx
+                                                             fmla.  */
+                                                          return 1397;
+                                                        }
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -7078,633 +7079,373 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx11100x10011x
-                                                         st4b.  */
-                                                      return 1812;
+                                                         x11001x00x1xxxxx0000x1xxxxxxxxxx
+                                                         fmls.  */
+                                                      return 1399;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx11110x10011x
-                                                         st4h.  */
-                                                      return 1816;
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x11001x0101xxxxx0000x1xxxxxxxxxx
+                                                             fmls.  */
+                                                          return 1400;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x11001x0111xxxxx0000x1xxxxxxxxxx
+                                                             fmls.  */
+                                                          return 1401;
+                                                        }
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-              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
-                                                 xxxxxxxxxxxxxxxxxxxx00001x100000
-                                                 orr.  */
-                                              return 1647;
-                                            }
                                           else
                                             {
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxxxxxxx00011x100000
-                                                 and.  */
-                                              return 1218;
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0x01xxxxx0001xxxxxxxxxxxx
+                                                     fcmla.  */
+                                                  return 1343;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0x11xxxxx0001xxxxxxxxxxxx
+                                                     fcmla.  */
+                                                  return 1344;
+                                                }
                                             }
                                         }
                                       else
                                         {
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 23) & 0x1) == 0)
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxxxxxxx00101x100000
-                                                 eor.  */
-                                              return 1305;
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0001xxxxx010xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1806;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0101xxxxx010xxxxxxxxxxxxx
+                                                     st1h.  */
+                                                  return 1825;
+                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxxxxxxxx00111x100000
-                                                 dupm.  */
-                                              return 1303;
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0011xxxxx010xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1809;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0111xxxxx010xxxxxxxxxxxxx
+                                                     st1h.  */
+                                                  return 1830;
+                                                }
                                             }
                                         }
                                     }
                                   else
                                     {
                                             }
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 15) & 0x1) == 0)
+                                      if (((word >> 22) & 0x1) == 0)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx0xxxx10xx1x100000
-                                             cpy.  */
-                                          return 1288;
+                                             x11001x0x01xxxxx1x0xxxxxxxxxxxxx
+                                             st1h.  */
+                                          return 1826;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxx1xxxx10xx1x100000
-                                             fcpy.  */
-                                          return 1331;
+                                             x11001x0x11xxxxx1x0xxxxxxxxxxxxx
+                                             st1h.  */
+                                          return 1831;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
-                              else
+                            }
+                          else
+                            {
+                              if (((word >> 30) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 14) & 0x1) == 0)
+                                  if (((word >> 31) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
+                                      if (((word >> 4) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxx1xx1x100000
-                                                 ext.  */
-                                              return 1310;
-                                            }
-                                          else
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             001001x0xx1xxxxxxx1xxxxxxxx0xxxx
+                                             cmplo.  */
+                                          return 1291;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             001001x0xx1xxxxxxx1xxxxxxxx1xxxx
+                                             cmpls.  */
+                                          return 1293;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 14) & 0x1) == 0)
+                                        {
+                                          if (((word >> 20) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 17) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010000x1xx1x100000
-                                                                 cpy.  */
-                                                              return 1286;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010001x1xx1x100000
-                                                                 clasta.  */
-                                                              return 1244;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010010x1xx1x100000
-                                                                 revb.  */
-                                                              return 1695;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010011x1xx1x100000
-                                                                 splice.  */
-                                                              return 1716;
-                                                            }
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x00010xxxxx01xxxxxxxxxxxxx
+                                                         ld1b.  */
+                                                      return 1465;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010100x1xx1x100000
-                                                                 lasta.  */
-                                                              return 1413;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0010101x1xx1x100000
-                                                                 clasta.  */
-                                                              return 1245;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx001011xx1xx1x100000
-                                                             revw.  */
-                                                          return 1697;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x01010xxxxx01xxxxxxxxxxxxx
+                                                         ld1h.  */
+                                                      return 1486;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 17) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011000x1xx1x100000
-                                                                 compact.  */
-                                                              return 1285;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011001x1xx1x100000
-                                                                 clastb.  */
-                                                              return 1247;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx001101xx1xx1x100000
-                                                             revh.  */
-                                                          return 1696;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x00110xxxxx01xxxxxxxxxxxxx
+                                                         ld1b.  */
+                                                      return 1467;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 18) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011100x1xx1x100000
-                                                                 lastb.  */
-                                                              return 1415;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx0011101x1xx1x100000
-                                                                 clastb.  */
-                                                              return 1248;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx001111xx1xx1x100000
-                                                             rbit.  */
-                                                          return 1688;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x01110xxxxx01xxxxxxxxxxxxx
+                                                         ld1h.  */
+                                                      return 1488;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          else
                                             {
                                             {
-                                              if (((word >> 11) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 12) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxx00100xxxxx1xx1x100000
-                                                         dup.  */
-                                                      return 1301;
+                                                         101001x00011xxxxx01xxxxxxxxxxxxx
+                                                         ldnf1b.  */
+                                                      return 1641;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxx01100xxxxx1xx1x100000
-                                                         tbl.  */
-                                                      return 1839;
+                                                         101001x01011xxxxx01xxxxxxxxxxxxx
+                                                         ldnf1h.  */
+                                                      return 1645;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 16) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 17) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 18) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 19) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxx1x100000001xx1x100000
-                                                                         dup.  */
-                                                                      return 1300;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxx1x100000011xx1x100000
-                                                                         sunpklo.  */
-                                                                      return 1835;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxxx1x1000001x1xx1x100000
-                                                                     rev.  */
-                                                                  return 1694;
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 20) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxxx1x100001x01xx1x100000
-                                                                     insr.  */
-                                                                  return 1410;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxxx1x100001x11xx1x100000
-                                                                     insr.  */
-                                                                  return 1411;
-                                                                }
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxx1x10001xxx1xx1x100000
-                                                             uunpklo.  */
-                                                          return 1892;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x00111xxxxx01xxxxxxxxxxxxx
+                                                         ldnf1b.  */
+                                                      return 1643;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 17) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxx1x10010xxx1xx1x100000
-                                                             sunpkhi.  */
-                                                          return 1834;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxx1x10011xxx1xx1x100000
-                                                             uunpkhi.  */
-                                                          return 1891;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x01111xxxxx01xxxxxxxxxxxxx
+                                                         ldnf1h.  */
+                                                      return 1647;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                          else
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 15) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1010xx001xx1x100000
-                                                             lasta.  */
-                                                          return 1412;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1010xx011xx1x100000
-                                                             clasta.  */
-                                                          return 1246;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0001xxxxx011xxxxxxxxxxxxx
+                                                         ldff1b.  */
+                                                      return 1582;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx1010xx1x1xx1x100000
-                                                         cpy.  */
-                                                      return 1287;
+                                                         101001x0101xxxxx011xxxxxxxxxxxxx
+                                                         ldff1h.  */
+                                                      return 1597;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 20) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx1011xxx01xx1x100000
-                                                         lastb.  */
-                                                      return 1414;
+                                                         101001x0011xxxxx011xxxxxxxxxxxxx
+                                                         ldff1b.  */
+                                                      return 1584;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx1011xxx11xx1x100000
-                                                         clastb.  */
-                                                      return 1249;
+                                                         101001x0111xxxxx011xxxxxxxxxxxxx
+                                                         ldff1h.  */
+                                                      return 1599;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 15) & 0x1) == 0)
-                                        {
-                                          if (((word >> 10) & 0x1) == 0)
+                                          else
                                             {
                                             {
-                                              if (((word >> 11) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 12) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 13) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 20) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010xxxx01xx1x100000
-                                                                 zip1.  */
-                                                              return 1909;
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 16) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 18) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0000100x0x11xx1x100000
-                                                                         punpklo.  */
-                                                                      return 1687;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0000100x1x11xx1x100000
-                                                                         rev.  */
-                                                                      return 1693;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0000101xxx11xx1x100000
-                                                                     punpkhi.  */
-                                                                  return 1686;
-                                                                }
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000110xxxxx1xx1x100000
-                                                             zip1.  */
-                                                          return 1910;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0001xxxxx111xxxxxxxxxxxxx
+                                                         ld2b.  */
+                                                      return 1557;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 13) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx001010xxxxx1xx1x100000
-                                                             trn1.  */
-                                                          return 1840;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx001110xxxxx1xx1x100000
-                                                             trn1.  */
-                                                          return 1841;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x0101xxxxx111xxxxxxxxxxxxx
+                                                         ld2h.  */
+                                                      return 1561;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 13) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx01x010xxxxx1xx1x100000
-                                                         uzp1.  */
-                                                      return 1896;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx01x110xxxxx1xx1x100000
-                                                         uzp1.  */
-                                                      return 1897;
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 11) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 12) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 13) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx100010xxxxx1xx1x100000
-                                                             zip2.  */
-                                                          return 1911;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx100110xxxxx1xx1x100000
-                                                             zip2.  */
-                                                          return 1912;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 13) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101010xxxxx1xx1x100000
-                                                             trn2.  */
-                                                          return 1842;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101110xxxxx1xx1x100000
-                                                             trn2.  */
-                                                          return 1843;
-                                                        }
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 13) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx11x010xxxxx1xx1x100000
-                                                         uzp2.  */
-                                                      return 1898;
+                                                         101001x0011xxxxx111xxxxxxxxxxxxx
+                                                         ld4b.  */
+                                                      return 1573;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11x110xxxxx1xx1x100000
-                                                         uzp2.  */
-                                                      return 1899;
+                                                         101001x0111xxxxx111xxxxxxxxxxxxx
+                                                         ld4h.  */
+                                                      return 1577;
                                                     }
                                                 }
                                             }
                                         }
                                                     }
                                                 }
                                             }
                                         }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxxxxxx11xxxxx1xx1x100000
-                                             sel.  */
-                                          return 1706;
-                                        }
                                     }
                                 }
                                     }
                                 }
-                            }
-                          else
-                            {
-                              if (((word >> 13) & 0x1) == 0)
+                              else
                                 {
                                   if (((word >> 14) & 0x1) == 0)
                                     {
                                       if (((word >> 15) & 0x1) == 0)
                                         {
                                 {
                                   if (((word >> 14) & 0x1) == 0)
                                     {
                                       if (((word >> 15) & 0x1) == 0)
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 23) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxxx0x1x100001
-                                                 ldr.  */
-                                              return 1616;
+                                                 x11001x00x1xxxxx001xxxxxxxxxxxxx
+                                                 fmul.  */
+                                              return 1406;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxxx1x1x100001
-                                                 prfb.  */
-                                              return 1660;
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0101xxxxx001xxxxxxxxxxxxx
+                                                     fmul.  */
+                                                  return 1407;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0111xxxxx001xxxxxxxxxxxxx
+                                                     fmul.  */
+                                                  return 1408;
+                                                }
                                             }
                                         }
                                       else
                                         {
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 23) & 0x1) == 0)
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxxxx01x100001
-                                                 ld1rsh.  */
-                                              return 1461;
+                                                 x11001x0x01xxxxx101xxxxxxxxxxxxx
+                                                 st1h.  */
+                                              return 1827;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxxxx11x100001
-                                                 ld1rsb.  */
-                                              return 1458;
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0011xxxxx101xxxxxxxxxxxxx
+                                                     st1b.  */
+                                                  return 1814;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x11001x0111xxxxx101xxxxxxxxxxxxx
+                                                     st1h.  */
+                                                  return 1835;
+                                                }
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -7712,193 +7453,936 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       if (((word >> 15) & 0x1) == 0)
                                         {
                                     {
                                       if (((word >> 15) & 0x1) == 0)
                                         {
-                                          if (((word >> 23) & 0x1) == 0)
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 21) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx0x01x100001
-                                                     ld1w.  */
-                                                  return 1496;
+                                                     x11001x0001xxxxx011xxxxxxxxxxxxx
+                                                     st2b.  */
+                                                  return 1849;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1x01x100001
-                                                     ld1w.  */
-                                                  return 1497;
+                                                     x11001x0101xxxxx011xxxxxxxxxxxxx
+                                                     st2h.  */
+                                                  return 1853;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxxx011x100001
-                                                     ldr.  */
-                                                  return 1617;
+                                                     x11001x0011xxxxx011xxxxxxxxxxxxx
+                                                     st4b.  */
+                                                  return 1865;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxxx111x100001
-                                                     prfw.  */
-                                                  return 1681;
+                                                     x11001x0111xxxxx011xxxxxxxxxxxxx
+                                                     st4h.  */
+                                                  return 1869;
                                                 }
                                             }
                                         }
                                       else
                                         {
                                                 }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 20) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 21) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0001x100001
-                                                         prfw.  */
-                                                      return 1677;
+                                                         x11001x00010xxxx111xxxxxxxxxxxxx
+                                                         st1b.  */
+                                                      return 1811;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0011x100001
-                                                         prfd.  */
-                                                      return 1663;
+                                                         x11001x01010xxxx111xxxxxxxxxxxxx
+                                                         st1h.  */
+                                                      return 1832;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx10x1x100001
-                                                     ld1w.  */
-                                                  return 1504;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x00110xxxx111xxxxxxxxxxxxx
+                                                         st1b.  */
+                                                      return 1815;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x01110xxxx111xxxxxxxxxxxxx
+                                                         st1h.  */
+                                                      return 1836;
+                                                    }
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 23) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxxx101x100001
-                                                     ld1rw.  */
-                                                  return 1464;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x00011xxxx111xxxxxxxxxxxxx
+                                                         st2b.  */
+                                                      return 1850;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x01011xxxx111xxxxxxxxxxxxx
+                                                         st2h.  */
+                                                      return 1854;
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxxx111x100001
-                                                     ld1rsb.  */
-                                                  return 1460;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x00111xxxx111xxxxxxxxxxxxx
+                                                         st4b.  */
+                                                      return 1866;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         x11001x01111xxxx111xxxxxxxxxxxxx
+                                                         st4h.  */
+                                                      return 1870;
+                                                    }
                                                 }
                                             }
                                         }
                                     }
                                 }
                                                 }
                                             }
                                         }
                                     }
                                 }
-                              else
+                            }
+                        }
+                    }
+                }
+              else
+                {
+                  if (((word >> 29) & 0x1) == 0)
+                    {
+                      if (((word >> 30) & 0x1) == 0)
+                        {
+                          if (((word >> 31) & 0x1) == 0)
+                            {
+                              if (((word >> 21) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 14) & 0x1) == 0)
+                                  if (((word >> 20) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 15) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxxxxx100xxxxxxxx1x100001
-                                             prfh.  */
-                                          return 1674;
-                                        }
-                                      else
+                                      if (((word >> 22) & 0x1) == 0)
                                         {
                                           if (((word >> 23) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                         {
                                           if (((word >> 23) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxxxx01x100001
-                                                 ld1rsh.  */
-                                              return 1462;
+                                                 000001x10000xxxxxxxxxxxxxxxxxxxx
+                                                 orr.  */
+                                              return 1695;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxxxx11x100001
-                                                 ld1rsb.  */
-                                              return 1459;
+                                                 000001x11000xxxxxxxxxxxxxxxxxxxx
+                                                 and.  */
+                                              return 1239;
                                             }
                                         }
                                             }
                                         }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 15) & 0x1) == 0)
+                                      else
                                         {
                                           if (((word >> 23) & 0x1) == 0)
                                             {
                                         {
                                           if (((word >> 23) & 0x1) == 0)
                                             {
-                                              if (((word >> 21) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx0x01x100001
-                                                     ldff1w.  */
-                                                  return 1582;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1x01x100001
-                                                     ldff1w.  */
-                                                  return 1583;
-                                                }
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 000001x10100xxxxxxxxxxxxxxxxxxxx
+                                                 eor.  */
+                                              return 1326;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxxxx11x100001
-                                                 prfd.  */
-                                              return 1667;
+                                                 000001x11100xxxxxxxxxxxxxxxxxxxx
+                                                 dupm.  */
+                                              return 1324;
                                             }
                                         }
                                             }
                                         }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 15) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             000001x1xx01xxxx0xxxxxxxxxxxxxxx
+                                             cpy.  */
+                                          return 1309;
+                                        }
                                       else
                                         {
                                       else
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             000001x1xx01xxxx1xxxxxxxxxxxxxxx
+                                             fcpy.  */
+                                          return 1356;
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 14) & 0x1) == 0)
+                                    {
+                                      if (((word >> 13) & 0x1) == 0)
+                                        {
+                                          if (((word >> 15) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 21) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 000001x1xx1xxxxx000xxxxxxxxxxxxx
+                                                 ext.  */
+                                              return 1331;
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 16) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 17) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x0000100xxxxxxxxxxxxx
+                                                                 cpy.  */
+                                                              return 1307;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x1000100xxxxxxxxxxxxx
+                                                                 clasta.  */
+                                                              return 1265;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x0100100xxxxxxxxxxxxx
+                                                                 revb.  */
+                                                              return 1743;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x1100100xxxxxxxxxxxxx
+                                                                 splice.  */
+                                                              return 1770;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x0010100xxxxxxxxxxxxx
+                                                                 lasta.  */
+                                                              return 1453;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x1010100xxxxxxxxxxxxx
+                                                                 clasta.  */
+                                                              return 1266;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xx110100xxxxxxxxxxxxx
+                                                             revw.  */
+                                                          return 1745;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 17) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x0001100xxxxxxxxxxxxx
+                                                                 compact.  */
+                                                              return 1306;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x1001100xxxxxxxxxxxxx
+                                                                 clastb.  */
+                                                              return 1268;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xx101100xxxxxxxxxxxxx
+                                                             revh.  */
+                                                          return 1744;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x0011100xxxxxxxxxxxxx
+                                                                 lastb.  */
+                                                              return 1455;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx1x1011100xxxxxxxxxxxxx
+                                                                 clastb.  */
+                                                              return 1269;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xx111100xxxxxxxxxxxxx
+                                                             rbit.  */
+                                                          return 1736;
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 15) & 0x1) == 0)
+                                            {
+                                              if (((word >> 11) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 12) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1xx1xxxxx00100xxxxxxxxxxx
+                                                         dup.  */
+                                                      return 1322;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1xx1xxxxx00110xxxxxxxxxxx
+                                                         tbl.  */
+                                                      return 1893;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  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
+                                                                         000001x1xx100000001x1xxxxxxxxxxx
+                                                                         dup.  */
+                                                                      return 1321;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x1xx110000001x1xxxxxxxxxxx
+                                                                         sunpklo.  */
+                                                                      return 1889;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x1xx1x1000001x1xxxxxxxxxxx
+                                                                     rev.  */
+                                                                  return 1742;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x1xx10x100001x1xxxxxxxxxxx
+                                                                     insr.  */
+                                                                  return 1450;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x1xx11x100001x1xxxxxxxxxxx
+                                                                     insr.  */
+                                                                  return 1451;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxx10001x1xxxxxxxxxxx
+                                                             uunpklo.  */
+                                                          return 1952;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 17) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxx01001x1xxxxxxxxxxx
+                                                             sunpkhi.  */
+                                                          return 1888;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxx11001x1xxxxxxxxxxx
+                                                             uunpkhi.  */
+                                                          return 1951;
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 16) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 19) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 20) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx100xx0101xxxxxxxxxxxxx
+                                                             lasta.  */
+                                                          return 1452;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx110xx0101xxxxxxxxxxxxx
+                                                             clasta.  */
+                                                          return 1267;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1xx1x1xx0101xxxxxxxxxxxxx
+                                                         cpy.  */
+                                                      return 1308;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 20) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1xx10xxx1101xxxxxxxxxxxxx
+                                                         lastb.  */
+                                                      return 1454;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1xx11xxx1101xxxxxxxxxxxxx
+                                                         clastb.  */
+                                                      return 1270;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 15) & 0x1) == 0)
+                                        {
+                                          if (((word >> 10) & 0x1) == 0)
+                                            {
+                                              if (((word >> 11) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 12) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 13) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 000001x1xx10xxxx010000xxxxxxxxxx
+                                                                 zip1.  */
+                                                              return 1969;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 16) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 18) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x1xx11x0x0010000xxxxxxxxxx
+                                                                         punpklo.  */
+                                                                      return 1735;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         000001x1xx11x1x0010000xxxxxxxxxx
+                                                                         rev.  */
+                                                                      return 1741;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     000001x1xx11xxx1010000xxxxxxxxxx
+                                                                     punpkhi.  */
+                                                                  return 1734;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx011000xxxxxxxxxx
+                                                             zip1.  */
+                                                          return 1970;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 13) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx010100xxxxxxxxxx
+                                                             trn1.  */
+                                                          return 1894;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx011100xxxxxxxxxx
+                                                             trn1.  */
+                                                          return 1895;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 13) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1xx1xxxxx010x10xxxxxxxxxx
+                                                         uzp1.  */
+                                                      return 1956;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1xx1xxxxx011x10xxxxxxxxxx
+                                                         uzp1.  */
+                                                      return 1957;
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 11) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 12) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 13) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx010001xxxxxxxxxx
+                                                             zip2.  */
+                                                          return 1971;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx011001xxxxxxxxxx
+                                                             zip2.  */
+                                                          return 1972;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 13) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx010101xxxxxxxxxx
+                                                             trn2.  */
+                                                          return 1896;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             000001x1xx1xxxxx011101xxxxxxxxxx
+                                                             trn2.  */
+                                                          return 1897;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 13) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1xx1xxxxx010x11xxxxxxxxxx
+                                                         uzp2.  */
+                                                      return 1958;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         000001x1xx1xxxxx011x11xxxxxxxxxx
+                                                         uzp2.  */
+                                                      return 1959;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             000001x1xx1xxxxx11xxxxxxxxxxxxxx
+                                             sel.  */
+                                          return 1760;
+                                        }
+                                    }
+                                }
+                            }
+                          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 1664;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 100001x1x1xxxxxx000xxxxxxxxxxxxx
+                                                 prfb.  */
+                                              return 1708;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 100001x10xxxxxxx100xxxxxxxxxxxxx
+                                                 ld1rsh.  */
+                                              return 1509;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 100001x11xxxxxxx100xxxxxxxxxxxxx
+                                                 ld1rsb.  */
+                                              return 1506;
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 15) & 0x1) == 0)
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              if (((word >> 21) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x10x0xxxxx010xxxxxxxxxxxxx
+                                                     ld1w.  */
+                                                  return 1544;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x10x1xxxxx010xxxxxxxxxxxxx
+                                                     ld1w.  */
+                                                  return 1545;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x110xxxxxx010xxxxxxxxxxxxx
+                                                     ldr.  */
+                                                  return 1665;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x111xxxxxx010xxxxxxxxxxxxx
+                                                     prfw.  */
+                                                  return 1729;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 21) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x1000xxxxx110xxxxxxxxxxxxx
+                                                         prfw.  */
+                                                      return 1725;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         100001x1100xxxxx110xxxxxxxxxxxxx
+                                                         prfd.  */
+                                                      return 1711;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x1x01xxxxx110xxxxxxxxxxxxx
+                                                     ld1w.  */
+                                                  return 1552;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x101xxxxxx110xxxxxxxxxxxxx
+                                                     ld1rw.  */
+                                                  return 1512;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x111xxxxxx110xxxxxxxxxxxxx
+                                                     ld1rsb.  */
+                                                  return 1508;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 14) & 0x1) == 0)
+                                    {
+                                      if (((word >> 15) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             100001x1xxxxxxxx001xxxxxxxxxxxxx
+                                             prfh.  */
+                                          return 1722;
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 100001x10xxxxxxx101xxxxxxxxxxxxx
+                                                 ld1rsh.  */
+                                              return 1510;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 100001x11xxxxxxx101xxxxxxxxxxxxx
+                                                 ld1rsb.  */
+                                              return 1507;
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 15) & 0x1) == 0)
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              if (((word >> 21) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x10x0xxxxx011xxxxxxxxxxxxx
+                                                     ldff1w.  */
+                                                  return 1630;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     100001x10x1xxxxx011xxxxxxxxxxxxx
+                                                     ldff1w.  */
+                                                  return 1631;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 100001x11xxxxxxx011xxxxxxxxxxxxx
+                                                 prfd.  */
+                                              return 1715;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              if (((word >> 21) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0001x100001
+                                                         100001x1000xxxxx111xxxxxxxxxxxxx
                                                          prfw.  */
                                                          prfw.  */
-                                                      return 1680;
+                                                      return 1728;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0011x100001
+                                                         100001x1100xxxxx111xxxxxxxxxxxxx
                                                          prfd.  */
                                                          prfd.  */
-                                                      return 1666;
+                                                      return 1714;
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx10x1x100001
+                                                     100001x1x01xxxxx111xxxxxxxxxxxxx
                                                      ldff1w.  */
                                                      ldff1w.  */
-                                                  return 1590;
+                                                  return 1638;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -7907,17 +8391,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxxx101x100001
+                                                     100001x101xxxxxx111xxxxxxxxxxxxx
                                                      ld1rw.  */
                                                      ld1rw.  */
-                                                  return 1465;
+                                                  return 1513;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxxx111x100001
+                                                     100001x111xxxxxx111xxxxxxxxxxxxx
                                                      ld1rd.  */
                                                      ld1rd.  */
-                                                  return 1454;
+                                                  return 1494;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -7937,17 +8421,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx000xxxxx0xx1x10001x
+                                             x10001x1xx0xxxxx000xxxxxxxxxxxxx
                                              ld1sw.  */
                                              ld1sw.  */
-                                          return 1490;
+                                          return 1538;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx000xxxxx1xx1x10001x
+                                             x10001x1xx1xxxxx000xxxxxxxxxxxxx
                                              ld1sw.  */
                                              ld1sw.  */
-                                          return 1491;
+                                          return 1539;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -7956,9 +8440,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx001xxxxx0xx1x10001x
+                                             x10001x1xx0xxxxx100xxxxxxxxxxxxx
                                              ld1sw.  */
                                              ld1sw.  */
-                                          return 1492;
+                                          return 1540;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -7966,17 +8450,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxx10x1x10001x
+                                                 x10001x1x01xxxxx100xxxxxxxxxxxxx
                                                  ld1sw.  */
                                                  ld1sw.  */
-                                              return 1495;
+                                              return 1543;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx001xxxxx11x1x10001x
+                                                 x10001x1x11xxxxx100xxxxxxxxxxxxx
                                                  ld1sw.  */
                                                  ld1sw.  */
-                                              return 1493;
+                                              return 1541;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -7991,17 +8475,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx0x01x10001x
+                                                 x10001x10x0xxxxx010xxxxxxxxxxxxx
                                                  ld1w.  */
                                                  ld1w.  */
-                                              return 1500;
+                                              return 1548;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx0x11x10001x
+                                                 x10001x11x0xxxxx010xxxxxxxxxxxxx
                                                  ld1d.  */
                                                  ld1d.  */
-                                              return 1430;
+                                              return 1470;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -8010,17 +8494,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx1x01x10001x
+                                                 x10001x10x1xxxxx010xxxxxxxxxxxxx
                                                  ld1w.  */
                                                  ld1w.  */
-                                              return 1501;
+                                              return 1549;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx1x11x10001x
+                                                 x10001x11x1xxxxx010xxxxxxxxxxxxx
                                                  ld1d.  */
                                                  ld1d.  */
-                                              return 1431;
+                                              return 1471;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -8032,17 +8516,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx011xxxxx0x01x10001x
+                                                 x10001x10x0xxxxx110xxxxxxxxxxxxx
                                                  ld1w.  */
                                                  ld1w.  */
-                                              return 1502;
+                                              return 1550;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx011xxxxx0x11x10001x
+                                                 x10001x11x0xxxxx110xxxxxxxxxxxxx
                                                  ld1d.  */
                                                  ld1d.  */
-                                              return 1432;
+                                              return 1472;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -8053,17 +8537,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1001x10001x
+                                                     x10001x1001xxxxx110xxxxxxxxxxxxx
                                                      ld1w.  */
                                                      ld1w.  */
-                                                  return 1507;
+                                                  return 1555;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1011x10001x
+                                                     x10001x1101xxxxx110xxxxxxxxxxxxx
                                                      ld1d.  */
                                                      ld1d.  */
-                                                  return 1435;
+                                                  return 1475;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -8072,17 +8556,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1101x10001x
+                                                     x10001x1011xxxxx110xxxxxxxxxxxxx
                                                      ld1w.  */
                                                      ld1w.  */
-                                                  return 1503;
+                                                  return 1551;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1111x10001x
+                                                     x10001x1111xxxxx110xxxxxxxxxxxxx
                                                      ld1d.  */
                                                      ld1d.  */
-                                                  return 1433;
+                                                  return 1473;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -8099,17 +8583,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx100xxxxx0xx1x10001x
+                                             x10001x1xx0xxxxx001xxxxxxxxxxxxx
                                              ldff1sw.  */
                                              ldff1sw.  */
-                                          return 1577;
+                                          return 1625;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx100xxxxx1xx1x10001x
+                                             x10001x1xx1xxxxx001xxxxxxxxxxxxx
                                              ldff1sw.  */
                                              ldff1sw.  */
-                                          return 1578;
+                                          return 1626;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -8118,9 +8602,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx101xxxxx0xx1x10001x
+                                             x10001x1xx0xxxxx101xxxxxxxxxxxxx
                                              ldff1sw.  */
                                              ldff1sw.  */
-                                          return 1579;
+                                          return 1627;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -8128,17 +8612,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxx10x1x10001x
+                                                 x10001x1x01xxxxx101xxxxxxxxxxxxx
                                                  ldff1sw.  */
                                                  ldff1sw.  */
-                                              return 1581;
+                                              return 1629;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx101xxxxx11x1x10001x
+                                                 x10001x1x11xxxxx101xxxxxxxxxxxxx
                                                  ldff1sw.  */
                                                  ldff1sw.  */
-                                              return 1580;
+                                              return 1628;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -8153,17 +8637,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx0x01x10001x
+                                                 x10001x10x0xxxxx011xxxxxxxxxxxxx
                                                  ldff1w.  */
                                                  ldff1w.  */
-                                              return 1586;
+                                              return 1634;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx0x11x10001x
+                                                 x10001x11x0xxxxx011xxxxxxxxxxxxx
                                                  ldff1d.  */
                                                  ldff1d.  */
-                                              return 1542;
+                                              return 1590;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -8172,17 +8656,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1x01x10001x
+                                                 x10001x10x1xxxxx011xxxxxxxxxxxxx
                                                  ldff1w.  */
                                                  ldff1w.  */
-                                              return 1587;
+                                              return 1635;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx110xxxxx1x11x10001x
+                                                 x10001x11x1xxxxx011xxxxxxxxxxxxx
                                                  ldff1d.  */
                                                  ldff1d.  */
-                                              return 1543;
+                                              return 1591;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -8196,17 +8680,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0001x10001x
+                                                     x10001x1000xxxxx111xxxxxxxxxxxxx
                                                      prfw.  */
                                                      prfw.  */
-                                                  return 1682;
+                                                  return 1730;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0011x10001x
+                                                     x10001x1100xxxxx111xxxxxxxxxxxxx
                                                      prfd.  */
                                                      prfd.  */
-                                                  return 1668;
+                                                  return 1716;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -8215,17 +8699,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0101x10001x
+                                                     x10001x1010xxxxx111xxxxxxxxxxxxx
                                                      ldff1w.  */
                                                      ldff1w.  */
-                                                  return 1588;
+                                                  return 1636;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0111x10001x
+                                                     x10001x1110xxxxx111xxxxxxxxxxxxx
                                                      ldff1d.  */
                                                      ldff1d.  */
-                                                  return 1544;
+                                                  return 1592;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -8237,17 +8721,73 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1001x10001x
+                                                     x10001x1001xxxxx111xxxxxxxxxxxxx
+                                                     ldff1w.  */
+                                                  return 1639;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x1101xxxxx111xxxxxxxxxxxxx
+                                                     ldff1d.  */
+                                                  return 1594;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x1011xxxxx111xxxxxxxxxxxxx
                                                      ldff1w.  */
                                                      ldff1w.  */
-                                                  return 1591;
+                                                  return 1637;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x10001x1111xxxxx111xxxxxxxxxxxxx
+                                                     ldff1d.  */
+                                                  return 1593;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                  else
+                    {
+                      if (((word >> 15) & 0x1) == 0)
+                        {
+                          if (((word >> 14) & 0x1) == 0)
+                            {
+                              if (((word >> 13) & 0x1) == 0)
+                                {
+                                  if (((word >> 30) & 0x1) == 0)
+                                    {
+                                      if (((word >> 21) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x1xx0xxxxx000xxxxxxxx0xxxx
+                                                     cmpge.  */
+                                                  return 1278;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1011x10001x
-                                                     ldff1d.  */
-                                                  return 1546;
+                                                     001001x1xx0xxxxx000xxxxxxxx1xxxx
+                                                     cmpgt.  */
+                                                  return 1281;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -8256,46 +8796,23 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1101x10001x
-                                                     ldff1w.  */
-                                                  return 1589;
+                                                     101001x10x0xxxxx000xxxxxxxxxxxxx
+                                                     ld1rqw.  */
+                                                  return 1505;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1111x10001x
-                                                     ldff1d.  */
-                                                  return 1545;
+                                                     101001x11x0xxxxx000xxxxxxxxxxxxx
+                                                     ld1rqd.  */
+                                                  return 1501;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
-                                    }
-                                }
-                            }
-                        }
-                    }
-                  else
-                    {
-                      if (((word >> 15) & 0x1) == 0)
-                        {
-                          if (((word >> 14) & 0x1) == 0)
-                            {
-                              if (((word >> 13) & 0x1) == 0)
-                                {
-                                  if (((word >> 30) & 0x1) == 0)
-                                    {
-                                      if (((word >> 4) & 0x1) == 0)
+                                      else
                                         {
                                         {
-                                          if (((word >> 21) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxx0xxxxxxxx000xxxxx0xx1x10010x
-                                                 cmpge.  */
-                                              return 1257;
-                                            }
-                                          else
+                                          if (((word >> 4) & 0x1) == 0)
                                             {
                                               if (((word >> 11) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 11) & 0x1) == 0)
                                                 {
@@ -8303,17 +8820,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxx00000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00000xxxxxx0xxxx
                                                          whilelt.  */
                                                          whilelt.  */
-                                                      return 1906;
+                                                      return 1966;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxx01000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00010xxxxxx0xxxx
                                                          whilelt.  */
                                                          whilelt.  */
-                                                      return 1907;
+                                                      return 1967;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -8322,31 +8839,20 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxx10000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00001xxxxxx0xxxx
                                                          whilelo.  */
                                                          whilelo.  */
-                                                      return 1902;
+                                                      return 1962;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxx11000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00011xxxxxx0xxxx
                                                          whilelo.  */
                                                          whilelo.  */
-                                                      return 1903;
+                                                      return 1963;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 21) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxx1xxxxxxxx000xxxxx0xx1x10010x
-                                                 cmpgt.  */
-                                              return 1260;
-                                            }
                                           else
                                             {
                                               if (((word >> 11) & 0x1) == 0)
                                           else
                                             {
                                               if (((word >> 11) & 0x1) == 0)
@@ -8355,17 +8861,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx1xxxxxx00000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00000xxxxxx1xxxx
                                                          whilele.  */
                                                          whilele.  */
-                                                      return 1900;
+                                                      return 1960;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx1xxxxxx01000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00010xxxxxx1xxxx
                                                          whilele.  */
                                                          whilele.  */
-                                                      return 1901;
+                                                      return 1961;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -8374,17 +8880,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx1xxxxxx10000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00001xxxxxx1xxxx
                                                          whilels.  */
                                                          whilels.  */
-                                                      return 1904;
+                                                      return 1964;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx1xxxxxx11000xxxxx1xx1x10010x
+                                                         x01001x1xx1xxxxx00011xxxxxx1xxxx
                                                          whilels.  */
                                                          whilels.  */
-                                                      return 1905;
+                                                      return 1965;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -8402,9 +8908,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00x000xxxxx0xx1x100110
+                                                         011001x1xx0xxxxx000x00xxxxxxxxxx
                                                          fadd.  */
                                                          fadd.  */
-                                                      return 1315;
+                                                      return 1336;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -8412,17 +8918,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx010000xxxxx0xx1x100110
+                                                             011001x1xx0xxxxx000010xxxxxxxxxx
                                                              fmul.  */
                                                              fmul.  */
-                                                          return 1366;
+                                                          return 1403;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx011000xxxxx0xx1x100110
+                                                             011001x1xx0xxxxx000110xxxxxxxxxx
                                                              frecps.  */
                                                              frecps.  */
-                                                          return 1376;
+                                                          return 1416;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -8432,9 +8938,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10x000xxxxx0xx1x100110
+                                                         011001x1xx0xxxxx000x01xxxxxxxxxx
                                                          fsub.  */
                                                          fsub.  */
-                                                      return 1389;
+                                                      return 1429;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -8442,17 +8948,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx110000xxxxx0xx1x100110
+                                                             011001x1xx0xxxxx000011xxxxxxxxxx
                                                              ftsmul.  */
                                                              ftsmul.  */
-                                                          return 1395;
+                                                          return 1435;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx111000xxxxx0xx1x100110
+                                                             011001x1xx0xxxxx000111xxxxxxxxxx
                                                              frsqrts.  */
                                                              frsqrts.  */
-                                                          return 1386;
+                                                          return 1426;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -8461,18 +8967,18 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx000xxxxx1xx1x100110
+                                                 011001x1xx1xxxxx000xxxxxxxxxxxxx
                                                  fmla.  */
                                                  fmla.  */
-                                              return 1363;
+                                              return 1394;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx000xxxxxxxx1x100111
+                                             111001x1xxxxxxxx000xxxxxxxxxxxxx
                                              str.  */
                                              str.  */
-                                          return 1827;
+                                          return 1881;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -8482,21 +8988,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       if (((word >> 30) & 0x1) == 0)
                                         {
                                     {
                                       if (((word >> 30) & 0x1) == 0)
                                         {
-                                          if (((word >> 4) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxx0xxxxxxxx100xxxxx0xx1x10010x
-                                                 cmplt.  */
-                                              return 1274;
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x1xx0xxxxx001xxxxxxxx0xxxx
+                                                     cmplt.  */
+                                                  return 1295;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     001001x1xx0xxxxx001xxxxxxxx1xxxx
+                                                     cmple.  */
+                                                  return 1289;
+                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxx1xxxxxxxx100xxxxx0xx1x10010x
-                                                 cmple.  */
-                                              return 1268;
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x10x0xxxxx001xxxxxxxxxxxxx
+                                                     ld1rqw.  */
+                                                  return 1504;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     101001x11x0xxxxx001xxxxxxxxxxxxx
+                                                     ld1rqd.  */
+                                                  return 1500;
+                                                }
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -8513,9 +9041,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxx100000000xx1x10011x
+                                                                 x11001x1xx000000001xxxxxxxxxxxxx
                                                                  faddv.  */
                                                                  faddv.  */
-                                                              return 1319;
+                                                              return 1340;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -8523,17 +9051,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxx0xxxxxxxx100000010xx1x10011x
+                                                                     x11001x1xx010000001xxxxxxxx0xxxx
                                                                      fcmge.  */
                                                                      fcmge.  */
-                                                                  return 1322;
+                                                                  return 1347;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxx1xxxxxxxx100000010xx1x10011x
+                                                                     x11001x1xx010000001xxxxxxxx1xxxx
                                                                      fcmgt.  */
                                                                      fcmgt.  */
-                                                                  return 1324;
+                                                                  return 1349;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -8541,18 +9069,18 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1000001x0xx1x10011x
+                                                             x11001x1xx0x1000001xxxxxxxxxxxxx
                                                              fadda.  */
                                                              fadda.  */
-                                                          return 1318;
+                                                          return 1339;
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100001xx0xx1x10011x
+                                                         x11001x1xx0xx100001xxxxxxxxxxxxx
                                                          fmaxnmv.  */
                                                          fmaxnmv.  */
-                                                      return 1355;
+                                                      return 1386;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -8561,9 +9089,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100010xx0xx1x10011x
+                                                         x11001x1xx0xx010001xxxxxxxxxxxxx
                                                          fcmeq.  */
                                                          fcmeq.  */
-                                                      return 1320;
+                                                      return 1345;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -8571,17 +9099,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1000110x0xx1x10011x
+                                                             x11001x1xx0x0110001xxxxxxxxxxxxx
                                                              fmaxv.  */
                                                              fmaxv.  */
-                                                          return 1356;
+                                                          return 1387;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1000111x0xx1x10011x
+                                                             x11001x1xx0x1110001xxxxxxxxxxxxx
                                                              frecpe.  */
                                                              frecpe.  */
-                                                          return 1375;
+                                                          return 1415;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -8596,26 +9124,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx0xxxxxxxx100100xx0xx1x10011x
+                                                             x11001x1xx0xx001001xxxxxxxx0xxxx
                                                              fcmlt.  */
                                                              fcmlt.  */
-                                                          return 1327;
+                                                          return 1352;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx1xxxxxxxx100100xx0xx1x10011x
+                                                             x11001x1xx0xx001001xxxxxxxx1xxxx
                                                              fcmle.  */
                                                              fcmle.  */
-                                                          return 1326;
+                                                          return 1351;
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100101xx0xx1x10011x
+                                                         x11001x1xx0xx101001xxxxxxxxxxxxx
                                                          fminnmv.  */
                                                          fminnmv.  */
-                                                      return 1361;
+                                                      return 1392;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -8624,9 +9152,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx100110xx0xx1x10011x
+                                                         x11001x1xx0xx011001xxxxxxxxxxxxx
                                                          fcmne.  */
                                                          fcmne.  */
-                                                      return 1328;
+                                                      return 1353;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -8634,17 +9162,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1001110x0xx1x10011x
+                                                             x11001x1xx0x0111001xxxxxxxxxxxxx
                                                              fminv.  */
                                                              fminv.  */
-                                                          return 1362;
+                                                          return 1393;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx1001111x0xx1x10011x
+                                                             x11001x1xx0x1111001xxxxxxxxxxxxx
                                                              frsqrte.  */
                                                              frsqrte.  */
-                                                          return 1385;
+                                                          return 1425;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -8659,39 +9187,39 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx0xxxxxxxx100xxxxx1xx1x10010x
+                                                 x01001x1xx1xxxxx001xxxxxxxx0xxxx
                                                  ctermeq.  */
                                                  ctermeq.  */
-                                              return 1289;
+                                              return 1310;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx1xxxxxxxx100xxxxx1xx1x10010x
+                                                 x01001x1xx1xxxxx001xxxxxxxx1xxxx
                                                  ctermne.  */
                                                  ctermne.  */
-                                              return 1290;
+                                              return 1311;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx100xxxxx1xx1x10011x
+                                             x11001x1xx1xxxxx001xxxxxxxxxxxxx
                                              fmls.  */
                                              fmls.  */
-                                          return 1364;
+                                          return 1398;
                                         }
                                     }
                                 }
                             }
                           else
                             {
                                         }
                                     }
                                 }
                             }
                           else
                             {
-                              if (((word >> 23) & 0x1) == 0)
+                              if (((word >> 30) & 0x1) == 0)
                                 {
                                   if (((word >> 21) & 0x1) == 0)
                                     {
                                       if (((word >> 22) & 0x1) == 0)
                                         {
                                 {
                                   if (((word >> 21) & 0x1) == 0)
                                     {
                                       if (((word >> 22) & 0x1) == 0)
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
+                                          if (((word >> 23) & 0x1) == 0)
                                             {
                                               if (((word >> 31) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 31) & 0x1) == 0)
                                                 {
@@ -8703,267 +9231,80 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxx0xxxx10xxxx00001x100100
+                                                                 001001x10000xxxx01xxxx0xxxx0xxxx
                                                                  and.  */
                                                                  and.  */
-                                                              return 1220;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxx1xxxx0xxxx10xxxx00001x100100
-                                                                 bic.  */
-                                                              return 1232;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 19) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxx0xxxx10xxx010001x100100
-                                                                 brka.  */
-                                                              return 1234;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxx0xxxx10xxx110001x100100
-                                                                 brkn.  */
-                                                              return 1238;
-                                                            }
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 4) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxx0xxxx1xxxx10xxxxx0001x100100
-                                                             eor.  */
-                                                          return 1307;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxx1xxxx1xxxx10xxxxx0001x100100
-                                                             sel.  */
-                                                          return 1707;
-                                                        }
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 13) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0001x100101
-                                                         ld1sh.  */
-                                                      return 1479;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0001x100101
-                                                         ldff1sh.  */
-                                                      return 1568;
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxxx10xxxxx0001x10011x
-                                                 stnt1w.  */
-                                              return 1825;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 30) & 0x1) == 0)
-                                            {
-                                              if (((word >> 31) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 4) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 9) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 20) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxx0xxxx0xxxx10xxxx00101x100100
-                                                                 ands.  */
-                                                              return 1221;
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 19) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxx0xxxx0xxxx10xxx010101x100100
-                                                                     brkas.  */
-                                                                  return 1235;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxx0xxxx0xxxx10xxx110101x100100
-                                                                     brkns.  */
-                                                                  return 1239;
-                                                                }
+                                                              return 1241;
                                                             }
                                                             }
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxx0xxxx1xxxx10xxxxx0101x100100
-                                                             eors.  */
-                                                          return 1308;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxx1xxxxxxxxx10xxxxx0101x100100
-                                                         bics.  */
-                                                      return 1233;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 13) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0101x100101
-                                                         ld1w.  */
-                                                      return 1498;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0101x100101
-                                                         ldff1w.  */
-                                                      return 1584;
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 13) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx0101x10011x
-                                                     st1w.  */
-                                                  return 1787;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx0101x10011x
-                                                     st3w.  */
-                                                  return 1809;
-                                                }
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 13) & 0x1) == 0)
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx010xxxxx1001x1001xx
-                                                 ld1sh.  */
-                                              return 1480;
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 30) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1101x10010x
-                                                     ld1w.  */
-                                                  return 1499;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1101x10011x
-                                                     st1w.  */
-                                                  return 1789;
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              if (((word >> 30) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1001x10010x
-                                                     ldff1sh.  */
-                                                  return 1569;
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x10000xxxx01xxxx0xxxx1xxxx
+                                                                 bic.  */
+                                                              return 1253;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x100010xxx01xxxx0xxxxxxxxx
+                                                                 brka.  */
+                                                              return 1255;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x100011xxx01xxxx0xxxxxxxxx
+                                                                 brkn.  */
+                                                              return 1259;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 4) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             001001x1000xxxxx01xxxx1xxxx0xxxx
+                                                             eor.  */
+                                                          return 1328;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             001001x1000xxxxx01xxxx1xxxx1xxxx
+                                                             sel.  */
+                                                          return 1761;
+                                                        }
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1001x10011x
-                                                     st2w.  */
-                                                  return 1801;
+                                                  if (((word >> 13) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x1000xxxxx010xxxxxxxxxxxxx
+                                                         ld1sh.  */
+                                                      return 1527;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x1000xxxxx011xxxxxxxxxxxxx
+                                                         ldff1sh.  */
+                                                      return 1616;
+                                                    }
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
-                                            {
-                                              if (((word >> 30) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1101x10010x
-                                                     ldff1w.  */
-                                                  return 1585;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1101x10011x
-                                                     st4w.  */
-                                                  return 1817;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 30) & 0x1) == 0)
-                                    {
-                                      if (((word >> 21) & 0x1) == 0)
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                               if (((word >> 31) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 31) & 0x1) == 0)
                                                 {
@@ -8975,26 +9316,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxx0xxxx10xxxx00011x100100
+                                                                 001001x11000xxxx01xxxx0xxxx0xxxx
                                                                  orr.  */
                                                                  orr.  */
-                                                              return 1649;
+                                                              return 1697;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx1xxxx0xxxx10xxxx00011x100100
+                                                                 001001x11000xxxx01xxxx0xxxx1xxxx
                                                                  orn.  */
                                                                  orn.  */
-                                                              return 1644;
+                                                              return 1692;
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxx0xxxx10xxxx10011x100100
+                                                             001001x11001xxxx01xxxx0xxxxxxxxx
                                                              brkb.  */
                                                              brkb.  */
-                                                          return 1236;
+                                                          return 1257;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -9003,17 +9344,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx0xxxx1xxxx10xxxxx0011x100100
+                                                             001001x1100xxxxx01xxxx1xxxx0xxxx
                                                              nor.  */
                                                              nor.  */
-                                                          return 1641;
+                                                          return 1689;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx1xxxx1xxxx10xxxxx0011x100100
+                                                             001001x1100xxxxx01xxxx1xxxx1xxxx
                                                              nand.  */
                                                              nand.  */
-                                                          return 1638;
+                                                          return 1686;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -9023,17 +9364,94 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0011x100101
+                                                         101001x1100xxxxx010xxxxxxxxxxxxx
                                                          ld1sb.  */
                                                          ld1sb.  */
-                                                      return 1467;
+                                                      return 1515;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0011x100101
+                                                         101001x1100xxxxx011xxxxxxxxxxxxx
                                                          ldff1sb.  */
                                                          ldff1sb.  */
-                                                      return 1559;
+                                                      return 1607;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              if (((word >> 31) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 4) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 9) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 001001x10100xxxx01xxxx0xxxx0xxxx
+                                                                 ands.  */
+                                                              return 1242;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 19) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     001001x101010xxx01xxxx0xxxx0xxxx
+                                                                     brkas.  */
+                                                                  return 1256;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     001001x101011xxx01xxxx0xxxx0xxxx
+                                                                     brkns.  */
+                                                                  return 1260;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             001001x1010xxxxx01xxxx1xxxx0xxxx
+                                                             eors.  */
+                                                          return 1329;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         001001x1010xxxxx01xxxxxxxxx1xxxx
+                                                         bics.  */
+                                                      return 1254;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 13) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x1010xxxxx010xxxxxxxxxxxxx
+                                                         ld1w.  */
+                                                      return 1546;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         101001x1010xxxxx011xxxxxxxxxxxxx
+                                                         ldff1w.  */
+                                                      return 1632;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9049,26 +9467,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxx0xxxx10xxxx00111x100100
+                                                                 001001x11100xxxx01xxxx0xxxx0xxxx
                                                                  orrs.  */
                                                                  orrs.  */
-                                                              return 1650;
+                                                              return 1698;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxx0xxxx10xxxx10111x100100
+                                                                 001001x11101xxxx01xxxx0xxxx0xxxx
                                                                  brkbs.  */
                                                                  brkbs.  */
-                                                              return 1237;
+                                                              return 1258;
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx0xxxx1xxxx10xxxxx0111x100100
+                                                             001001x1110xxxxx01xxxx1xxxx0xxxx
                                                              nors.  */
                                                              nors.  */
-                                                          return 1642;
+                                                          return 1690;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -9077,17 +9495,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx1xxxx0xxxx10xxxxx0111x100100
+                                                             001001x1110xxxxx01xxxx0xxxx1xxxx
                                                              orns.  */
                                                              orns.  */
-                                                          return 1645;
+                                                          return 1693;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx1xxxx1xxxx10xxxxx0111x100100
+                                                             001001x1110xxxxx01xxxx1xxxx1xxxx
                                                              nands.  */
                                                              nands.  */
-                                                          return 1639;
+                                                          return 1687;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -9097,187 +9515,297 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx010xxxxx0111x100101
+                                                         101001x1110xxxxx010xxxxxxxxxxxxx
                                                          ld1sb.  */
                                                          ld1sb.  */
-                                                      return 1469;
+                                                      return 1517;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0111x100101
+                                                         101001x1110xxxxx011xxxxxxxxxxxxx
                                                          ldff1sb.  */
                                                          ldff1sb.  */
-                                                      return 1561;
+                                                      return 1609;
                                                     }
                                                 }
                                             }
                                         }
                                                     }
                                                 }
                                             }
                                         }
-                                      else
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 13) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 13) & 0x1) == 0)
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x01001x1001xxxxx010xxxxxxxxxxxxx
+                                                     ld1sh.  */
+                                                  return 1528;
+                                                }
+                                              else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1011x10010x
+                                                     x01001x1101xxxxx010xxxxxxxxxxxxx
                                                      ld1sb.  */
                                                      ld1sb.  */
-                                                  return 1468;
+                                                  return 1516;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x01001x1011xxxxx010xxxxxxxxxxxxx
+                                                     ld1w.  */
+                                                  return 1547;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1111x10010x
+                                                     x01001x1111xxxxx010xxxxxxxxxxxxx
                                                      ld1d.  */
                                                      ld1d.  */
-                                                  return 1429;
+                                                  return 1469;
                                                 }
                                             }
                                                 }
                                             }
-                                          else
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x01001x1001xxxxx011xxxxxxxxxxxxx
+                                                     ldff1sh.  */
+                                                  return 1617;
+                                                }
+                                              else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1011x10010x
+                                                     x01001x1101xxxxx011xxxxxxxxxxxxx
                                                      ldff1sb.  */
                                                      ldff1sb.  */
-                                                  return 1560;
+                                                  return 1608;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x01001x1011xxxxx011xxxxxxxxxxxxx
+                                                     ldff1w.  */
+                                                  return 1633;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1111x10010x
+                                                     x01001x1111xxxxx011xxxxxxxxxxxxx
                                                      ldff1d.  */
                                                      ldff1d.  */
-                                                  return 1541;
+                                                  return 1589;
                                                 }
                                             }
                                         }
                                     }
                                                 }
                                             }
                                         }
                                     }
-                                  else
+                                }
+                              else
+                                {
+                                  if (((word >> 13) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
+                                      if (((word >> 31) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 31) & 0x1) == 0)
+                                          if (((word >> 21) & 0x1) == 0)
+                                            {
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     011001x1xx0xxxxx010xxxxxxxx0xxxx
+                                                     fcmge.  */
+                                                  return 1348;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     011001x1xx0xxxxx010xxxxxxxx1xxxx
+                                                     fcmgt.  */
+                                                  return 1350;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 011001x1xx1xxxxx010xxxxxxxxxxxxx
+                                                 fnmla.  */
+                                              return 1412;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 22) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 111001x1x0xxxxxx010xxxxxxxxxxxxx
+                                                 str.  */
+                                              return 1882;
+                                            }
+                                          else
                                             {
                                               if (((word >> 21) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 21) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 4) & 0x1) == 0)
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     111001x1x10xxxxx010xxxxxxxxxxxxx
+                                                     st1w.  */
+                                                  return 1841;
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxxxx010xxxxx0x11x100110
-                                                         fcmge.  */
-                                                      return 1323;
+                                                         111001x1011xxxxx010xxxxxxxxxxxxx
+                                                         st1w.  */
+                                                      return 1843;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx1xxxxxxxx010xxxxx0x11x100110
-                                                         fcmgt.  */
-                                                      return 1325;
+                                                         111001x1111xxxxx010xxxxxxxxxxxxx
+                                                         st1d.  */
+                                                      return 1820;
                                                     }
                                                 }
                                                     }
                                                 }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxx1x11x100110
-                                                     fnmla.  */
-                                                  return 1372;
-                                                }
                                             }
                                             }
-                                          else
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 21) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 4) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxxx011x100111
-                                                     str.  */
-                                                  return 1828;
+                                                     011001x1xx0xxxxx011xxxxxxxx0xxxx
+                                                     fcmeq.  */
+                                                  return 1346;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx010xxxxxx111x100111
-                                                     st1d.  */
-                                                  return 1766;
+                                                     011001x1xx0xxxxx011xxxxxxxx1xxxx
+                                                     fcmne.  */
+                                                  return 1354;
                                                 }
                                             }
                                                 }
                                             }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 21) & 0x1) == 0)
+                                          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
-                                                         xxxx0xxxxxxxx110xxxxx0x11x100110
-                                                         fcmeq.  */
-                                                      return 1321;
+                                                         111001x1000xxxxx011xxxxxxxxxxxxx
+                                                         stnt1w.  */
+                                                      return 1879;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx1xxxxxxxx110xxxxx0x11x100110
-                                                         fcmne.  */
-                                                      return 1329;
+                                                         111001x1100xxxxx011xxxxxxxxxxxxx
+                                                         stnt1d.  */
+                                                      return 1875;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0011x100111
-                                                         stnt1d.  */
-                                                      return 1821;
+                                                         111001x1010xxxxx011xxxxxxxxxxxxx
+                                                         st3w.  */
+                                                      return 1863;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx0111x100111
+                                                         111001x1110xxxxx011xxxxxxxxxxxxx
                                                          st3d.  */
                                                          st3d.  */
-                                                      return 1805;
+                                                      return 1859;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 011001x1xx1xxxxx011xxxxxxxxxxxxx
+                                                 fnmls.  */
+                                              return 1413;
+                                            }
                                           else
                                             {
                                           else
                                             {
-                                              if (((word >> 31) & 0x1) == 0)
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx110xxxxx1x11x100110
-                                                     fnmls.  */
-                                                  return 1373;
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x1001xxxxx011xxxxxxxxxxxxx
+                                                         st2w.  */
+                                                      return 1855;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x1101xxxxx011xxxxxxxxxxxxx
+                                                         st2d.  */
+                                                      return 1851;
+                                                    }
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1011x100111
-                                                         st2d.  */
-                                                      return 1797;
+                                                         111001x1011xxxxx011xxxxxxxxxxxxx
+                                                         st4w.  */
+                                                      return 1871;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx110xxxxx1111x100111
+                                                         111001x1111xxxxx011xxxxxxxxxxxxx
                                                          st4d.  */
                                                          st4d.  */
-                                                      return 1813;
+                                                      return 1867;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9300,17 +9828,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx0xxxxxxxx001xxxxx0xx1x10010x
+                                                 x01001x1xx0xxxxx100xxxxxxxx0xxxx
                                                  cmpeq.  */
                                                  cmpeq.  */
-                                              return 1254;
+                                              return 1275;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxx1xxxxxxxx001xxxxx0xx1x10010x
+                                                 x01001x1xx0xxxxx100xxxxxxxx1xxxx
                                                  cmpne.  */
                                                  cmpne.  */
-                                              return 1277;
+                                              return 1298;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -9323,17 +9851,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx00001x10010x
+                                                         x01001x10000xxxx101xxxxxxxxxxxxx
                                                          ld1sh.  */
                                                          ld1sh.  */
-                                                      return 1486;
+                                                      return 1534;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx00011x10010x
+                                                         x01001x11000xxxx101xxxxxxxxxxxxx
                                                          ld1sb.  */
                                                          ld1sb.  */
-                                                      return 1473;
+                                                      return 1521;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -9342,17 +9870,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx00101x10010x
+                                                         x01001x10100xxxx101xxxxxxxxxxxxx
                                                          ld1w.  */
                                                          ld1w.  */
-                                                      return 1505;
+                                                      return 1553;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx00111x10010x
+                                                         x01001x11100xxxx101xxxxxxxxxxxxx
                                                          ld1sb.  */
                                                          ld1sb.  */
-                                                      return 1475;
+                                                      return 1523;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9364,17 +9892,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx10001x10010x
+                                                         x01001x10001xxxx101xxxxxxxxxxxxx
                                                          ldnf1sh.  */
                                                          ldnf1sh.  */
-                                                      return 1603;
+                                                      return 1651;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx10011x10010x
+                                                         x01001x11001xxxx101xxxxxxxxxxxxx
                                                          ldnf1sb.  */
                                                          ldnf1sb.  */
-                                                      return 1600;
+                                                      return 1648;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -9383,17 +9911,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx10101x10010x
+                                                         x01001x10101xxxx101xxxxxxxxxxxxx
                                                          ldnf1w.  */
                                                          ldnf1w.  */
-                                                      return 1606;
+                                                      return 1654;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxx10111x10010x
+                                                         x01001x11101xxxx101xxxxxxxxxxxxx
                                                          ldnf1sb.  */
                                                          ldnf1sb.  */
-                                                      return 1602;
+                                                      return 1650;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9411,17 +9939,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxxxxx11xxxx000x1x100100
+                                                         001001x1x000xxxx11xxxxxxxxx0xxxx
                                                          brkpa.  */
                                                          brkpa.  */
-                                                      return 1240;
+                                                      return 1261;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxx0xxxxxxxxx11xxxx001x1x100100
+                                                         001001x1x100xxxx11xxxxxxxxx0xxxx
                                                          brkpas.  */
                                                          brkpas.  */
-                                                      return 1241;
+                                                      return 1262;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -9432,9 +9960,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx0xxxxxxxxx110xx010xx1x100100
+                                                             001001x1xx010xx011xxxxxxxxx0xxxx
                                                              ptest.  */
                                                              ptest.  */
-                                                          return 1683;
+                                                          return 1731;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -9446,17 +9974,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxx0xxxxx0x00110xx110xx1x100100
+                                                                         001001x1xx011xx01100x0xxxxx0xxxx
                                                                          pfirst.  */
                                                                          pfirst.  */
-                                                                      return 1653;
+                                                                      return 1701;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxx0xxxxx0x01110xx110xx1x100100
+                                                                         001001x1xx011xx01110x0xxxxx0xxxx
                                                                          ptrue.  */
                                                                          ptrue.  */
-                                                                      return 1684;
+                                                                      return 1732;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -9465,17 +9993,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxx0xxxxx0x1x110xx1100x1x100100
+                                                                         001001x1x0011xx011x1x0xxxxx0xxxx
                                                                          rdffr.  */
                                                                          rdffr.  */
-                                                                      return 1690;
+                                                                      return 1738;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxx0xxxxx0x1x110xx1101x1x100100
+                                                                         001001x1x1011xx011x1x0xxxxx0xxxx
                                                                          rdffrs.  */
                                                                          rdffrs.  */
-                                                                      return 1691;
+                                                                      return 1739;
                                                                     }
                                                                 }
                                                             }
                                                                     }
                                                                 }
                                                             }
@@ -9483,9 +10011,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxxx1xxx110xx110xx1x100100
+                                                                 001001x1xx011xx011xxx1xxxxx0xxxx
                                                                  pfalse.  */
                                                                  pfalse.  */
-                                                              return 1652;
+                                                              return 1700;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -9497,26 +10025,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxxx0x0x111xxx10xx1x100100
+                                                                 001001x1xx01xxx111x0x0xxxxx0xxxx
                                                                  ptrues.  */
                                                                  ptrues.  */
-                                                              return 1685;
+                                                              return 1733;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxx0xxxxx0x1x111xxx10xx1x100100
+                                                                 001001x1xx01xxx111x1x0xxxxx0xxxx
                                                                  rdffr.  */
                                                                  rdffr.  */
-                                                              return 1689;
+                                                              return 1737;
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxx0xxxxx1xxx111xxx10xx1x100100
+                                                             001001x1xx01xxx111xxx1xxxxx0xxxx
                                                              pnext.  */
                                                              pnext.  */
-                                                          return 1654;
+                                                          return 1702;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -9527,17 +10055,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxxx11xxxxx00x1x100100
+                                                     001001x1x00xxxxx11xxxxxxxxx1xxxx
                                                      brkpb.  */
                                                      brkpb.  */
-                                                  return 1242;
+                                                  return 1263;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxx1xxxxxxxxx11xxxxx01x1x100100
+                                                     001001x1x10xxxxx11xxxxxxxxx1xxxx
                                                      brkpbs.  */
                                                      brkpbs.  */
-                                                  return 1243;
+                                                  return 1264;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -9551,17 +10079,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0001x100101
+                                                         101001x1000xxxxx110xxxxxxxxxxxxx
                                                          ldnt1w.  */
                                                          ldnt1w.  */
-                                                      return 1614;
+                                                      return 1662;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0011x100101
+                                                         101001x1100xxxxx110xxxxxxxxxxxxx
                                                          ldnt1d.  */
                                                          ldnt1d.  */
-                                                      return 1610;
+                                                      return 1658;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -9570,17 +10098,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0101x100101
+                                                         101001x1010xxxxx110xxxxxxxxxxxxx
                                                          ld3w.  */
                                                          ld3w.  */
-                                                      return 1522;
+                                                      return 1570;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx0111x100101
+                                                         101001x1110xxxxx110xxxxxxxxxxxxx
                                                          ld3d.  */
                                                          ld3d.  */
-                                                      return 1518;
+                                                      return 1566;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9592,17 +10120,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0001x100101
+                                                         101001x1000xxxxx111xxxxxxxxxxxxx
                                                          ldnt1w.  */
                                                          ldnt1w.  */
-                                                      return 1615;
+                                                      return 1663;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0011x100101
+                                                         101001x1100xxxxx111xxxxxxxxxxxxx
                                                          ldnt1d.  */
                                                          ldnt1d.  */
-                                                      return 1611;
+                                                      return 1659;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -9611,17 +10139,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0101x100101
+                                                         101001x1010xxxxx111xxxxxxxxxxxxx
                                                          ld3w.  */
                                                          ld3w.  */
-                                                      return 1523;
+                                                      return 1571;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0111x100101
+                                                         101001x1110xxxxx111xxxxxxxxxxxxx
                                                          ld3d.  */
                                                          ld3d.  */
-                                                      return 1519;
+                                                      return 1567;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -9632,741 +10160,873 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   if (((word >> 13) & 0x1) == 0)
                                     {
                                 {
                                   if (((word >> 13) & 0x1) == 0)
                                     {
-                                      if (((word >> 23) & 0x1) == 0)
-                                        {
-                                          if (((word >> 22) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x1xxxxx0001x10011x
-                                                 st1w.  */
-                                              return 1783;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x1xxxxx0101x10011x
-                                                 st1w.  */
-                                              return 1788;
-                                            }
-                                        }
-                                      else
+                                      if (((word >> 31) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 31) & 0x1) == 0)
+                                          if (((word >> 14) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 14) & 0x1) == 0)
+                                              if (((word >> 19) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 20) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 16) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 16) & 0x1) == 0)
+                                                          if (((word >> 17) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 17) & 0x1) == 0)
+                                                              if (((word >> 18) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 18) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001000000x11x100110
-                                                                         fadd.  */
-                                                                      return 1316;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001001000x11x100110
-                                                                         fmaxnm.  */
-                                                                      return 1353;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000000100xxxxxxxxxxxxx
+                                                                     fadd.  */
+                                                                  return 1337;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 18) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001010000x11x100110
-                                                                         fmul.  */
-                                                                      return 1367;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001011000x11x100110
-                                                                         fmax.  */
-                                                                      return 1351;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000100100xxxxxxxxxxxxx
+                                                                     fmaxnm.  */
+                                                                  return 1384;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 17) & 0x1) == 0)
+                                                              if (((word >> 18) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 18) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001100000x11x100110
-                                                                         fsub.  */
-                                                                      return 1390;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001101000x11x100110
-                                                                         fminnm.  */
-                                                                      return 1359;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000010100xxxxxxxxxxxxx
+                                                                     fmul.  */
+                                                                  return 1404;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 18) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001110000x11x100110
-                                                                         fsubr.  */
-                                                                      return 1392;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001111000x11x100110
-                                                                         fmin.  */
-                                                                      return 1357;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000110100xxxxxxxxxxxxx
+                                                                     fmax.  */
+                                                                  return 1382;
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx001xxx010x11x100110
-                                                             ftmad.  */
-                                                          return 1394;
+                                                          if (((word >> 17) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 18) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000001100xxxxxxxxxxxxx
+                                                                     fsub.  */
+                                                                  return 1430;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000101100xxxxxxxxxxxxx
+                                                                     fminnm.  */
+                                                                  return 1390;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 18) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000011100xxxxxxxxxxxxx
+                                                                     fsubr.  */
+                                                                  return 1432;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000111100xxxxxxxxxxxxx
+                                                                     fmin.  */
+                                                                  return 1388;
+                                                                }
+                                                            }
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 16) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         011001x1xx010xxx100xxxxxxxxxxxxx
+                                                         ftmad.  */
+                                                      return 1434;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 16) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 17) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 17) & 0x1) == 0)
+                                                          if (((word >> 18) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 18) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001000100x11x100110
-                                                                         fabd.  */
-                                                                      return 1311;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001000110x11x100110
-                                                                         fadd.  */
-                                                                      return 1317;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx001000100xxxxxxxxxxxxx
+                                                                     fabd.  */
+                                                                  return 1332;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001001100x11x100110
-                                                                         fdivr.  */
-                                                                      return 1347;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001001110x11x100110
-                                                                         fmaxnm.  */
-                                                                      return 1354;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx011000100xxxxxxxxxxxxx
+                                                                     fadd.  */
+                                                                  return 1338;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 18) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001010100x11x100110
-                                                                         fmulx.  */
-                                                                      return 1369;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001010110x11x100110
-                                                                         fmul.  */
-                                                                      return 1368;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx001100100xxxxxxxxxxxxx
+                                                                     fdivr.  */
+                                                                  return 1378;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx0010111x0x11x100110
-                                                                     fmax.  */
-                                                                  return 1352;
+                                                                     011001x1xx011100100xxxxxxxxxxxxx
+                                                                     fmaxnm.  */
+                                                                  return 1385;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 18) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx001010100xxxxxxxxxxxxx
+                                                                     fmulx.  */
+                                                                  return 1409;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx011010100xxxxxxxxxxxxx
+                                                                     fmul.  */
+                                                                  return 1405;
                                                                 }
                                                             }
                                                                 }
                                                             }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 011001x1xx0x1110100xxxxxxxxxxxxx
+                                                                 fmax.  */
+                                                              return 1383;
+                                                            }
                                                         }
                                                         }
-                                                      else
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 17) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 17) & 0x1) == 0)
+                                                          if (((word >> 18) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 18) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001100100x11x100110
-                                                                         fscale.  */
-                                                                      return 1387;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001100110x11x100110
-                                                                         fsub.  */
-                                                                      return 1391;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx001001100xxxxxxxxxxxxx
+                                                                     fscale.  */
+                                                                  return 1427;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001101100x11x100110
-                                                                         fdiv.  */
-                                                                      return 1346;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx001101110x11x100110
-                                                                         fminnm.  */
-                                                                      return 1360;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx011001100xxxxxxxxxxxxx
+                                                                     fsub.  */
+                                                                  return 1431;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 18) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx0011101x0x11x100110
-                                                                     fsubr.  */
-                                                                  return 1393;
+                                                                     011001x1xx001101100xxxxxxxxxxxxx
+                                                                     fdiv.  */
+                                                                  return 1377;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx0011111x0x11x100110
-                                                                     fmin.  */
-                                                                  return 1358;
+                                                                     011001x1xx011101100xxxxxxxxxxxxx
+                                                                     fminnm.  */
+                                                                  return 1391;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 4) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxx0xxxxxxxx011xxxxx0x11x100110
-                                                         fcmuo.  */
-                                                      return 1330;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxx1xxxxxxxx011xxxxx0x11x100110
-                                                         facge.  */
-                                                      return 1313;
+                                                      else
+                                                        {
+                                                          if (((word >> 18) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 011001x1xx0x1011100xxxxxxxxxxxxx
+                                                                 fsubr.  */
+                                                              return 1433;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 011001x1xx0x1111100xxxxxxxxxxxxx
+                                                                 fmin.  */
+                                                              return 1389;
+                                                            }
+                                                        }
                                                     }
                                                 }
                                             }
                                           else
                                             {
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x1xxxxx0x11x100111
-                                                 st1d.  */
-                                              return 1762;
+                                              if (((word >> 4) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     011001x1xx0xxxxx110xxxxxxxx0xxxx
+                                                     fcmuo.  */
+                                                  return 1355;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     011001x1xx0xxxxx110xxxxxxxx1xxxx
+                                                     facge.  */
+                                                  return 1334;
+                                                }
                                             }
                                         }
                                             }
                                         }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      else
                                         {
                                         {
-                                          if (((word >> 23) & 0x1) == 0)
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx0001x10011x
+                                                     111001x1000xxxxx1x0xxxxxxxxxxxxx
                                                      st1w.  */
                                                      st1w.  */
-                                                  return 1784;
+                                                  return 1837;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx0101x10011x
-                                                     st1w.  */
-                                                  return 1791;
+                                                     111001x1100xxxxx1x0xxxxxxxxxxxxx
+                                                     st1d.  */
+                                                  return 1816;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 31) & 0x1) == 0)
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 111001x1x10xxxxx1x0xxxxxxxxxxxxx
+                                                 st1w.  */
+                                              return 1842;
+                                            }
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 14) & 0x1) == 0)
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              if (((word >> 16) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 16) & 0x1) == 0)
+                                                  if (((word >> 17) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 17) & 0x1) == 0)
+                                                      if (((word >> 18) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000000101xxxxxxxxxxxxx
+                                                                     frintn.  */
+                                                                  return 1421;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx010000101xxxxxxxxxxxxx
+                                                                     scvtf.  */
+                                                                  return 1751;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 22) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101000000x11x100110
-                                                                         frintn.  */
-                                                                      return 1381;
+                                                                         011001x1x0001000101xxxxxxxxxxxxx
+                                                                         fcvt.  */
+                                                                      return 1357;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101000010x11x100110
-                                                                         scvtf.  */
-                                                                      return 1701;
+                                                                         011001x1x1001000101xxxxxxxxxxxxx
+                                                                         fcvt.  */
+                                                                      return 1359;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                     }
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      if (((word >> 22) & 0x1) == 0)
-                                                                        {
-                                                                          /* 33222222222211111111110000000000
-                                                                             10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101000100011x100110
-                                                                             fcvt.  */
-                                                                          return 1332;
-                                                                        }
-                                                                      else
-                                                                        {
-                                                                          /* 33222222222211111111110000000000
-                                                                             10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101000100111x100110
-                                                                             fcvt.  */
-                                                                          return 1334;
-                                                                        }
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101000110x11x100110
-                                                                         fcvtzs.  */
-                                                                      return 1339;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx011000101xxxxxxxxxxxxx
+                                                                     fcvtzs.  */
+                                                                  return 1367;
                                                                 }
                                                             }
                                                                 }
                                                             }
-                                                          else
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000100101xxxxxxxxxxxxx
+                                                                     frinta.  */
+                                                                  return 1418;
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 22) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101001000x11x100110
-                                                                         frinta.  */
-                                                                      return 1378;
+                                                                         011001x1x0010100101xxxxxxxxxxxxx
+                                                                         scvtf.  */
+                                                                      return 1750;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
-                                                                      if (((word >> 22) & 0x1) == 0)
+                                                                      if (((word >> 23) & 0x1) == 0)
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101001010011x100110
+                                                                             011001x101010100101xxxxxxxxxxxxx
                                                                              scvtf.  */
                                                                              scvtf.  */
-                                                                          return 1700;
+                                                                          return 1749;
                                                                         }
                                                                       else
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
                                                                         }
                                                                       else
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101001010111x100110
+                                                                             011001x111010100101xxxxxxxxxxxxx
                                                                              scvtf.  */
                                                                              scvtf.  */
-                                                                          return 1702;
+                                                                          return 1753;
                                                                         }
                                                                     }
                                                                 }
                                                                         }
                                                                     }
                                                                 }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx001100101xxxxxxxxxxxxx
+                                                                     frecpx.  */
+                                                                  return 1417;
+                                                                }
                                                               else
                                                                 {
                                                               else
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
+                                                                  if (((word >> 22) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101001100x11x100110
-                                                                         frecpx.  */
-                                                                      return 1377;
+                                                                         011001x1x0011100101xxxxxxxxxxxxx
+                                                                         fcvtzs.  */
+                                                                      return 1366;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
-                                                                      if (((word >> 22) & 0x1) == 0)
+                                                                      if (((word >> 23) & 0x1) == 0)
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101001110011x100110
+                                                                             011001x101011100101xxxxxxxxxxxxx
                                                                              fcvtzs.  */
                                                                              fcvtzs.  */
-                                                                          return 1338;
+                                                                          return 1364;
                                                                         }
                                                                       else
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
                                                                         }
                                                                       else
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101001110111x100110
+                                                                             011001x111011100101xxxxxxxxxxxxx
                                                                              fcvtzs.  */
                                                                              fcvtzs.  */
-                                                                          return 1340;
+                                                                          return 1368;
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                         }
-                                                      else
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx1010100x0x11x100110
+                                                                     011001x1xx000010101xxxxxxxxxxxxx
                                                                      frintm.  */
                                                                      frintm.  */
-                                                                  return 1380;
+                                                                  return 1420;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx1010101x0x11x100110
-                                                                     fcvt.  */
-                                                                  return 1336;
+                                                                     011001x1xx010010101xxxxxxxxxxxxx
+                                                                     scvtf.  */
+                                                                  return 1748;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx001010101xxxxxxxxxxxxx
+                                                                     fcvt.  */
+                                                                  return 1361;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx011010101xxxxxxxxxxxxx
+                                                                     fcvtzs.  */
+                                                                  return 1363;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000110101xxxxxxxxxxxxx
+                                                                     frintx.  */
+                                                                  return 1423;
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101011000x11x100110
-                                                                         frintx.  */
-                                                                      return 1383;
+                                                                         011001x10x010110101xxxxxxxxxxxxx
+                                                                         scvtf.  */
+                                                                      return 1752;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101011010x11x100110
+                                                                         011001x11x010110101xxxxxxxxxxxxx
                                                                          scvtf.  */
                                                                          scvtf.  */
-                                                                      return 1703;
+                                                                      return 1754;
                                                                     }
                                                                 }
                                                                     }
                                                                 }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x10x0x1110101xxxxxxxxxxxxx
+                                                                     fcvtzs.  */
+                                                                  return 1365;
+                                                                }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx1010111x0x11x100110
+                                                                     011001x11x0x1110101xxxxxxxxxxxxx
                                                                      fcvtzs.  */
                                                                      fcvtzs.  */
-                                                                  return 1341;
+                                                                  return 1369;
                                                                 }
                                                             }
                                                         }
                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
-                                                  else
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 17) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 17) & 0x1) == 0)
+                                                      if (((word >> 18) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000001101xxxxxxxxxxxxx
+                                                                     frintp.  */
+                                                                  return 1422;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx010001101xxxxxxxxxxxxx
+                                                                     ucvtf.  */
+                                                                  return 1903;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
+                                                                  if (((word >> 22) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101100000x11x100110
-                                                                         frintp.  */
-                                                                      return 1382;
+                                                                         011001x1x0001001101xxxxxxxxxxxxx
+                                                                         fcvt.  */
+                                                                      return 1358;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101100010x11x100110
-                                                                         ucvtf.  */
-                                                                      return 1847;
+                                                                         011001x1x1001001101xxxxxxxxxxxxx
+                                                                         fcvt.  */
+                                                                      return 1360;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                     }
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      if (((word >> 22) & 0x1) == 0)
-                                                                        {
-                                                                          /* 33222222222211111111110000000000
-                                                                             10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101100100011x100110
-                                                                             fcvt.  */
-                                                                          return 1333;
-                                                                        }
-                                                                      else
-                                                                        {
-                                                                          /* 33222222222211111111110000000000
-                                                                             10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101100100111x100110
-                                                                             fcvt.  */
-                                                                          return 1335;
-                                                                        }
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101100110x11x100110
-                                                                         fcvtzu.  */
-                                                                      return 1343;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx011001101xxxxxxxxxxxxx
+                                                                     fcvtzu.  */
+                                                                  return 1374;
                                                                 }
                                                             }
                                                                 }
                                                             }
-                                                          else
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
+                                                              if (((word >> 22) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 22) & 0x1) == 0)
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1x00x0101101xxxxxxxxxxxxx
+                                                                     ucvtf.  */
+                                                                  return 1902;
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx1011010x0011x100110
+                                                                         011001x1010x0101101xxxxxxxxxxxxx
                                                                          ucvtf.  */
                                                                          ucvtf.  */
-                                                                      return 1846;
+                                                                      return 1901;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx1011010x0111x100110
+                                                                         011001x1110x0101101xxxxxxxxxxxxx
                                                                          ucvtf.  */
                                                                          ucvtf.  */
-                                                                      return 1848;
+                                                                      return 1905;
                                                                     }
                                                                 }
                                                                     }
                                                                 }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx001101101xxxxxxxxxxxxx
+                                                                     fsqrt.  */
+                                                                  return 1428;
+                                                                }
                                                               else
                                                                 {
                                                               else
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
+                                                                  if (((word >> 22) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101101100x11x100110
-                                                                         fsqrt.  */
-                                                                      return 1388;
+                                                                         011001x1x0011101101xxxxxxxxxxxxx
+                                                                         fcvtzu.  */
+                                                                      return 1373;
                                                                     }
                                                                   else
                                                                     {
                                                                     }
                                                                   else
                                                                     {
-                                                                      if (((word >> 22) & 0x1) == 0)
+                                                                      if (((word >> 23) & 0x1) == 0)
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101101110011x100110
+                                                                             011001x101011101101xxxxxxxxxxxxx
                                                                              fcvtzu.  */
                                                                              fcvtzu.  */
-                                                                          return 1342;
+                                                                          return 1371;
                                                                         }
                                                                       else
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
                                                                         }
                                                                       else
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxxxxx101101110111x100110
+                                                                             011001x111011101101xxxxxxxxxxxxx
                                                                              fcvtzu.  */
                                                                              fcvtzu.  */
-                                                                          return 1344;
+                                                                          return 1375;
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                         }
                                                                         }
                                                                     }
                                                                 }
                                                             }
                                                         }
-                                                      else
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx1011100x0x11x100110
+                                                                     011001x1xx000011101xxxxxxxxxxxxx
                                                                      frintz.  */
                                                                      frintz.  */
-                                                                  return 1384;
+                                                                  return 1424;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx1011101x0x11x100110
-                                                                     fcvt.  */
-                                                                  return 1337;
+                                                                     011001x1xx010011101xxxxxxxxxxxxx
+                                                                     ucvtf.  */
+                                                                  return 1900;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx001011101xxxxxxxxxxxxx
+                                                                     fcvt.  */
+                                                                  return 1362;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx011011101xxxxxxxxxxxxx
+                                                                     fcvtzu.  */
+                                                                  return 1370;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x1xx000111101xxxxxxxxxxxxx
+                                                                     frinti.  */
+                                                                  return 1419;
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101111000x11x100110
-                                                                         frinti.  */
-                                                                      return 1379;
+                                                                         011001x10x010111101xxxxxxxxxxxxx
+                                                                         ucvtf.  */
+                                                                      return 1904;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxxxxx101111010x11x100110
+                                                                         011001x11x010111101xxxxxxxxxxxxx
                                                                          ucvtf.  */
                                                                          ucvtf.  */
-                                                                      return 1849;
+                                                                      return 1906;
                                                                     }
                                                                 }
                                                                     }
                                                                 }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     011001x10x0x1111101xxxxxxxxxxxxx
+                                                                     fcvtzu.  */
+                                                                  return 1372;
+                                                                }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxxxx1011111x0x11x100110
+                                                                     011001x11x0x1111101xxxxxxxxxxxxx
                                                                      fcvtzu.  */
                                                                      fcvtzu.  */
-                                                                  return 1345;
+                                                                  return 1376;
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
                                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
-                                              else
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxxx0011x100111
-                                                         st1d.  */
-                                                      return 1763;
+                                                         111001x1000xxxxx101xxxxxxxxxxxxx
+                                                         st1w.  */
+                                                      return 1838;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx101xxxxx0111x100111
+                                                         111001x1100xxxxx101xxxxxxxxxxxxx
                                                          st1d.  */
                                                          st1d.  */
-                                                      return 1767;
+                                                      return 1817;
                                                     }
                                                 }
                                                     }
                                                 }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              if (((word >> 20) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxx00x01x10011x
-                                                     st1w.  */
-                                                  return 1792;
-                                                }
                                               else
                                                 {
                                               else
                                                 {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx10001x10011x
-                                                         stnt1w.  */
-                                                      return 1826;
+                                                         111001x1010xxxxx101xxxxxxxxxxxxx
+                                                         st1w.  */
+                                                      return 1845;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx10101x10011x
-                                                         st3w.  */
-                                                      return 1810;
+                                                         111001x1110xxxxx101xxxxxxxxxxxxx
+                                                         st1d.  */
+                                                      return 1821;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 011001x1xx0xxxxx111xxxxxxxxxxxxx
+                                                 facgt.  */
+                                              return 1335;
+                                            }
                                           else
                                             {
                                           else
                                             {
-                                              if (((word >> 31) & 0x1) == 0)
+                                              if (((word >> 20) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx0x11x100110
-                                                     facgt.  */
-                                                  return 1314;
+                                                     111001x1xx00xxxx111xxxxxxxxxxxxx
+                                                     st1w.  */
+                                                  return 1846;
                                                 }
                                               else
                                                 {
                                                   if (((word >> 22) & 0x1) == 0)
                                                     {
                                                 }
                                               else
                                                 {
                                                   if (((word >> 22) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0011x100111
-                                                         stnt1d.  */
-                                                      return 1822;
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x10001xxxx111xxxxxxxxxxxxx
+                                                             stnt1w.  */
+                                                          return 1880;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x11001xxxx111xxxxxxxxxxxxx
+                                                             stnt1d.  */
+                                                          return 1876;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx0111x100111
-                                                         st3d.  */
-                                                      return 1806;
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x10101xxxx111xxxxxxxxxxxxx
+                                                             st3w.  */
+                                                          return 1864;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x11101xxxx111xxxxxxxxxxxxx
+                                                             st3d.  */
+                                                          return 1860;
+                                                        }
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -10394,9 +11054,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx01000001xx1x100100
+                                                                 001001x1xx10000010xxxxxxxxxxxxxx
                                                                  cntp.  */
                                                                  cntp.  */
-                                                              return 1283;
+                                                              return 1304;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
@@ -10408,35 +11068,35 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxx000x01000101xx1x100100
+                                                                             001001x1xx10100010x000xxxxxxxxxx
                                                                              sqincp.  */
                                                                              sqincp.  */
-                                                                          return 1741;
+                                                                          return 1795;
                                                                         }
                                                                       else
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
                                                                         }
                                                                       else
                                                                         {
                                                                           /* 33222222222211111111110000000000
                                                                              10987654321098765432109876543210
-                                                                             xxxxxxxxxx001x01000101xx1x100100
+                                                                             001001x1xx10100010x100xxxxxxxxxx
                                                                              wrffr.  */
                                                                              wrffr.  */
-                                                                          return 1908;
+                                                                          return 1968;
                                                                         }
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                         }
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx01xx01000101xx1x100100
+                                                                         001001x1xx10100010xx10xxxxxxxxxx
                                                                          sqincp.  */
                                                                          sqincp.  */
-                                                                      return 1743;
+                                                                      return 1797;
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                     }
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx1xxx01000101xx1x100100
+                                                                     001001x1xx10100010xxx1xxxxxxxxxx
                                                                      sqincp.  */
                                                                      sqincp.  */
-                                                                  return 1742;
+                                                                  return 1796;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -10448,26 +11108,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxx00x01001x01xx1x100100
+                                                                     001001x1xx10x10010x00xxxxxxxxxxx
                                                                      incp.  */
                                                                      incp.  */
-                                                                  return 1402;
+                                                                  return 1442;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxxx01x01001x01xx1x100100
+                                                                     001001x1xx10x10010x10xxxxxxxxxxx
                                                                      setffr.  */
                                                                      setffr.  */
-                                                                  return 1708;
+                                                                  return 1762;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxx1xx01001x01xx1x100100
+                                                                 001001x1xx10x10010xx1xxxxxxxxxxx
                                                                  incp.  */
                                                                  incp.  */
-                                                              return 1403;
+                                                              return 1443;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -10479,26 +11139,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00xx0101xx01xx1x100100
+                                                                 001001x1xx10xx1010xx00xxxxxxxxxx
                                                                  sqdecp.  */
                                                                  sqdecp.  */
-                                                              return 1727;
+                                                              return 1781;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx01xx0101xx01xx1x100100
+                                                                 001001x1xx10xx1010xx10xxxxxxxxxx
                                                                  sqdecp.  */
                                                                  sqdecp.  */
-                                                              return 1729;
+                                                              return 1783;
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                             }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1xxx0101xx01xx1x100100
+                                                             001001x1xx10xx1010xxx1xxxxxxxxxx
                                                              sqdecp.  */
                                                              sqdecp.  */
-                                                          return 1728;
+                                                          return 1782;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -10514,26 +11174,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00xx01100x01xx1x100100
+                                                                     001001x1xx10x00110xx00xxxxxxxxxx
                                                                      uqincp.  */
                                                                      uqincp.  */
-                                                                  return 1883;
+                                                                  return 1943;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx00xx01101x01xx1x100100
+                                                                     001001x1xx10x10110xx00xxxxxxxxxx
                                                                      decp.  */
                                                                      decp.  */
-                                                                  return 1296;
+                                                                  return 1317;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx00xx0111xx01xx1x100100
+                                                                 001001x1xx10xx1110xx00xxxxxxxxxx
                                                                  uqdecp.  */
                                                                  uqdecp.  */
-                                                              return 1869;
+                                                              return 1929;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -10544,26 +11204,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01xx01100x01xx1x100100
+                                                                     001001x1xx10x00110xx10xxxxxxxxxx
                                                                      uqincp.  */
                                                                      uqincp.  */
-                                                                  return 1884;
+                                                                  return 1944;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx01xx01101x01xx1x100100
+                                                                     001001x1xx10x10110xx10xxxxxxxxxx
                                                                      decp.  */
                                                                      decp.  */
-                                                                  return 1297;
+                                                                  return 1318;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                                 }
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx01xx0111xx01xx1x100100
+                                                                 001001x1xx10xx1110xx10xxxxxxxxxx
                                                                  uqdecp.  */
                                                                  uqdecp.  */
-                                                              return 1870;
+                                                              return 1930;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -10573,17 +11233,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1xxx0110xx01xx1x100100
+                                                             001001x1xx10xx0110xxx1xxxxxxxxxx
                                                              uqincp.  */
                                                              uqincp.  */
-                                                          return 1885;
+                                                          return 1945;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1xxx0111xx01xx1x100100
+                                                             001001x1xx10xx1110xxx1xxxxxxxxxx
                                                              uqdecp.  */
                                                              uqdecp.  */
-                                                          return 1871;
+                                                          return 1931;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -10596,17 +11256,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx01xxxx01001x100101
+                                                         101001x10010xxxx10xxxxxxxxxxxxxx
                                                          ld1sh.  */
                                                          ld1sh.  */
-                                                      return 1487;
+                                                      return 1535;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx01xxxx01011x100101
+                                                         101001x11010xxxx10xxxxxxxxxxxxxx
                                                          ld1sb.  */
                                                          ld1sb.  */
-                                                      return 1474;
+                                                      return 1522;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -10615,17 +11275,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx01xxxx01101x100101
+                                                         101001x10110xxxx10xxxxxxxxxxxxxx
                                                          ld1w.  */
                                                          ld1w.  */
-                                                      return 1506;
+                                                      return 1554;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx01xxxx01111x100101
+                                                         101001x11110xxxx10xxxxxxxxxxxxxx
                                                          ld1d.  */
                                                          ld1d.  */
-                                                      return 1434;
+                                                      return 1474;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -10638,17 +11298,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxxx01xxxx11001x10010x
+                                                     x01001x10011xxxx10xxxxxxxxxxxxxx
                                                      ldnf1sh.  */
                                                      ldnf1sh.  */
-                                                  return 1604;
+                                                  return 1652;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxxx01xxxx11011x10010x
+                                                     x01001x11011xxxx10xxxxxxxxxxxxxx
                                                      ldnf1sb.  */
                                                      ldnf1sb.  */
-                                                  return 1601;
+                                                  return 1649;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -10657,17 +11317,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxxx01xxxx11101x10010x
+                                                     x01001x10111xxxx10xxxxxxxxxxxxxx
                                                      ldnf1w.  */
                                                      ldnf1w.  */
-                                                  return 1607;
+                                                  return 1655;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxxx01xxxx11111x10010x
+                                                     x01001x11111xxxx10xxxxxxxxxxxxxx
                                                      ldnf1d.  */
                                                      ldnf1d.  */
-                                                  return 1596;
+                                                  return 1644;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -10688,17 +11348,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx11000001xx1x100100
+                                                                 001001x1xx10000011xxxxxxxxxxxxxx
                                                                  add.  */
                                                                  add.  */
-                                                              return 1210;
+                                                              return 1231;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx11000011xx1x100100
+                                                                 001001x1xx11000011xxxxxxxxxxxxxx
                                                                  mul.  */
                                                                  mul.  */
-                                                              return 1636;
+                                                              return 1684;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -10707,17 +11367,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx11000101xx1x100100
+                                                                 001001x1xx10100011xxxxxxxxxxxxxx
                                                                  smax.  */
                                                                  smax.  */
-                                                              return 1709;
+                                                              return 1763;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx11000111xx1x100100
+                                                                 001001x1xx11100011xxxxxxxxxxxxxx
                                                                  dup.  */
                                                                  dup.  */
-                                                              return 1302;
+                                                              return 1323;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -10725,9 +11385,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx11001xx1xx1x100100
+                                                         001001x1xx1xx10011xxxxxxxxxxxxxx
                                                          sqadd.  */
                                                          sqadd.  */
-                                                      return 1718;
+                                                      return 1772;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -10736,17 +11396,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx11010xx1xx1x100100
+                                                         001001x1xx1xx01011xxxxxxxxxxxxxx
                                                          smin.  */
                                                          smin.  */
-                                                      return 1712;
+                                                      return 1766;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx11011xx1xx1x100100
+                                                         001001x1xx1xx11011xxxxxxxxxxxxxx
                                                          sqsub.  */
                                                          sqsub.  */
-                                                      return 1748;
+                                                      return 1802;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -10760,9 +11420,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxxx111000x1xx1x100100
+                                                             001001x1xx1x000111xxxxxxxxxxxxxx
                                                              sub.  */
                                                              sub.  */
-                                                          return 1830;
+                                                          return 1884;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
@@ -10770,17 +11430,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx11100101xx1x100100
+                                                                 001001x1xx10100111xxxxxxxxxxxxxx
                                                                  umax.  */
                                                                  umax.  */
-                                                              return 1852;
+                                                              return 1912;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxxxxxx11100111xx1x100100
+                                                                 001001x1xx11100111xxxxxxxxxxxxxx
                                                                  fdup.  */
                                                                  fdup.  */
-                                                              return 1348;
+                                                              return 1379;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
@@ -10788,9 +11448,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx11101xx1xx1x100100
+                                                         001001x1xx1xx10111xxxxxxxxxxxxxx
                                                          uqadd.  */
                                                          uqadd.  */
-                                                      return 1860;
+                                                      return 1920;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -10801,26 +11461,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxxx111100x1xx1x100100
+                                                             001001x1xx1x001111xxxxxxxxxxxxxx
                                                              subr.  */
                                                              subr.  */
-                                                          return 1832;
+                                                          return 1886;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxxx111101x1xx1x100100
+                                                             001001x1xx1x101111xxxxxxxxxxxxxx
                                                              umin.  */
                                                              umin.  */
-                                                          return 1855;
+                                                          return 1915;
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxxx11111xx1xx1x100100
+                                                         001001x1xx1xx11111xxxxxxxxxxxxxx
                                                          uqsub.  */
                                                          uqsub.  */
-                                                      return 1890;
+                                                      return 1950;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -10835,17 +11495,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx1001x100101
+                                                         101001x1001xxxxx110xxxxxxxxxxxxx
                                                          ld2w.  */
                                                          ld2w.  */
-                                                      return 1514;
+                                                      return 1562;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx1011x100101
+                                                         101001x1101xxxxx110xxxxxxxxxxxxx
                                                          ld2d.  */
                                                          ld2d.  */
-                                                      return 1510;
+                                                      return 1558;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -10854,17 +11514,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx1101x100101
+                                                         101001x1011xxxxx110xxxxxxxxxxxxx
                                                          ld4w.  */
                                                          ld4w.  */
-                                                      return 1530;
+                                                      return 1578;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx011xxxxx1111x100101
+                                                         101001x1111xxxxx110xxxxxxxxxxxxx
                                                          ld4d.  */
                                                          ld4d.  */
-                                                      return 1526;
+                                                      return 1574;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -10876,17 +11536,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1001x100101
+                                                         101001x1001xxxxx111xxxxxxxxxxxxx
                                                          ld2w.  */
                                                          ld2w.  */
-                                                      return 1515;
+                                                      return 1563;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1011x100101
+                                                         101001x1101xxxxx111xxxxxxxxxxxxx
                                                          ld2d.  */
                                                          ld2d.  */
-                                                      return 1511;
+                                                      return 1559;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -10895,17 +11555,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1101x100101
+                                                         101001x1011xxxxx111xxxxxxxxxxxxx
                                                          ld4w.  */
                                                          ld4w.  */
-                                                      return 1531;
+                                                      return 1579;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxxx1111x100101
+                                                         101001x1111xxxxx111xxxxxxxxxxxxx
                                                          ld4d.  */
                                                          ld4d.  */
-                                                      return 1527;
+                                                      return 1575;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -10916,53 +11576,53 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   if (((word >> 13) & 0x1) == 0)
                                     {
                                 {
                                   if (((word >> 13) & 0x1) == 0)
                                     {
-                                      if (((word >> 23) & 0x1) == 0)
+                                      if (((word >> 31) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 22) & 0x1) == 0)
+                                          if (((word >> 14) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x1xxxxx1001x10011x
-                                                 st1w.  */
-                                              return 1785;
+                                                 011001x1xx1xxxxx100xxxxxxxxxxxxx
+                                                 fmad.  */
+                                              return 1381;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x1xxxxx1101x10011x
-                                                 st1w.  */
-                                              return 1790;
+                                                 011001x1xx1xxxxx110xxxxxxxxxxxxx
+                                                 fnmad.  */
+                                              return 1411;
                                             }
                                         }
                                       else
                                         {
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 31) & 0x1) == 0)
+                                          if (((word >> 22) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 14) & 0x1) == 0)
+                                              if (((word >> 23) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx001xxxxx1x11x100110
-                                                     fmad.  */
-                                                  return 1350;
+                                                     111001x1001xxxxx1x0xxxxxxxxxxxxx
+                                                     st1w.  */
+                                                  return 1839;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx011xxxxx1x11x100110
-                                                     fnmad.  */
-                                                  return 1371;
+                                                     111001x1101xxxxx1x0xxxxxxxxxxxxx
+                                                     st1d.  */
+                                                  return 1818;
                                                 }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                                 }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxxxx0x1xxxxx1x11x100111
-                                                 st1d.  */
-                                              return 1764;
+                                                 111001x1x11xxxxx1x0xxxxxxxxxxxxx
+                                                 st1w.  */
+                                              return 1844;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -10970,114 +11630,114 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       if (((word >> 14) & 0x1) == 0)
                                         {
                                     {
                                       if (((word >> 14) & 0x1) == 0)
                                         {
-                                          if (((word >> 23) & 0x1) == 0)
+                                          if (((word >> 31) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1001x10011x
-                                                     st1w.  */
-                                                  return 1786;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1101x10011x
-                                                     st1w.  */
-                                                  return 1793;
-                                                }
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 011001x1xx1xxxxx101xxxxxxxxxxxxx
+                                                 fmsb.  */
+                                              return 1402;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              if (((word >> 31) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1x11x100110
-                                                     fmsb.  */
-                                                  return 1365;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx101xxxxx1x11x100111
-                                                     st1d.  */
-                                                  return 1765;
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              if (((word >> 20) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxx01x01x10011x
-                                                     st1w.  */
-                                                  return 1794;
-                                                }
-                                              else
+                                              if (((word >> 22) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx11001x10011x
-                                                         st2w.  */
-                                                      return 1802;
+                                                         111001x1001xxxxx101xxxxxxxxxxxxx
+                                                         st1w.  */
+                                                      return 1840;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx11101x10011x
-                                                         st4w.  */
-                                                      return 1818;
+                                                         111001x1101xxxxx101xxxxxxxxxxxxx
+                                                         st1d.  */
+                                                      return 1819;
                                                     }
                                                 }
                                                     }
                                                 }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 31) & 0x1) == 0)
+                                              else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxxxxx111xxxxx1x11x100110
-                                                     fnmsb.  */
-                                                  return 1374;
+                                                     111001x1x11xxxxx101xxxxxxxxxxxxx
+                                                     st1w.  */
+                                                  return 1847;
                                                 }
                                                 }
-                                              else
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 31) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 011001x1xx1xxxxx111xxxxxxxxxxxxx
+                                                 fnmsb.  */
+                                              return 1414;
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 20) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 20) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxxxxx111xxxx01x11x100111
-                                                         st1d.  */
-                                                      return 1768;
+                                                         111001x10x10xxxx111xxxxxxxxxxxxx
+                                                         st1w.  */
+                                                      return 1848;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 22) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         111001x11x10xxxx111xxxxxxxxxxxxx
+                                                         st1d.  */
+                                                      return 1822;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx111xxxx11011x100111
+                                                             111001x10011xxxx111xxxxxxxxxxxxx
+                                                             st2w.  */
+                                                          return 1856;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x11011xxxx111xxxxxxxxxxxxx
                                                              st2d.  */
                                                              st2d.  */
-                                                          return 1798;
+                                                          return 1852;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             111001x10111xxxx111xxxxxxxxxxxxx
+                                                             st4w.  */
+                                                          return 1872;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxxxxx111xxxx11111x100111
+                                                             111001x11111xxxx111xxxxxxxxxxxxx
                                                              st4d.  */
                                                              st4d.  */
-                                                          return 1814;
+                                                          return 1868;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -11100,189 +11760,321 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxxxx101000
+                             000101xxxxxxxxxxxxxxxxxxxxxxxxxx
                              b.  */
                              b.  */
-                          return 627;
+                          return 630;
                         }
                       else
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         }
                       else
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxxxx101001
+                             100101xxxxxxxxxxxxxxxxxxxxxxxxxx
                              bl.  */
                              bl.  */
-                          return 628;
+                          return 631;
                         }
                     }
                   else
                     {
                       if (((word >> 24) & 0x1) == 0)
                         {
                         }
                     }
                   else
                     {
                       if (((word >> 24) & 0x1) == 0)
                         {
-                          if (((word >> 25) & 0x1) == 0)
+                          if (((word >> 4) & 0x1) == 0)
                             {
                             {
-                              if (((word >> 31) & 0x1) == 0)
-                                {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxxxx00101010
-                                     b.c.  */
-                                  return 636;
-                                }
-                              else
+                              if (((word >> 25) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 0) & 0x1) == 0)
+                                  if (((word >> 31) & 0x1) == 0)
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         01010100xxxxxxxxxxxxxxxxxxx0xxxx
+                                         b.c.  */
+                                      return 651;
+                                    }
+                                  else
                                     {
                                     {
-                                      if (((word >> 1) & 0x1) == 0)
+                                      if (((word >> 0) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 21) & 0x1) == 0)
+                                          if (((word >> 1) & 0x1) == 0)
                                             {
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 00xxxxxxxxxxxxxxxxxxx0xx00101011
-                                                 hlt.  */
-                                              return 727;
+                                              if (((word >> 21) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     11010100xx0xxxxxxxxxxxxxxxx0xx00
+                                                     hlt.  */
+                                                  return 742;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     11010100xx1xxxxxxxxxxxxxxxx0xx00
+                                                     brk.  */
+                                                  return 741;
+                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 00xxxxxxxxxxxxxxxxxxx1xx00101011
-                                                 brk.  */
-                                              return 726;
+                                              if (((word >> 21) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     11010100xx0xxxxxxxxxxxxxxxx0xx10
+                                                     hvc.  */
+                                                  return 739;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     11010100xx1xxxxxxxxxxxxxxxx0xx10
+                                                     dcps2.  */
+                                                  return 744;
+                                                }
                                             }
                                         }
                                       else
                                         {
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 21) & 0x1) == 0)
+                                          if (((word >> 1) & 0x1) == 0)
                                             {
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 01xxxxxxxxxxxxxxxxxxx0xx00101011
-                                                 hvc.  */
-                                              return 724;
+                                              if (((word >> 21) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     11010100xx0xxxxxxxxxxxxxxxx0xx01
+                                                     svc.  */
+                                                  return 738;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     11010100xx1xxxxxxxxxxxxxxxx0xx01
+                                                     dcps1.  */
+                                                  return 743;
+                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 01xxxxxxxxxxxxxxxxxxx1xx00101011
-                                                 dcps2.  */
-                                              return 729;
+                                              if (((word >> 21) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     11010100xx0xxxxxxxxxxxxxxxx0xx11
+                                                     smc.  */
+                                                  return 740;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     11010100xx1xxxxxxxxxxxxxxxx0xx11
+                                                     dcps3.  */
+                                                  return 745;
+                                                }
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
-                                  else
+                                }
+                              else
+                                {
+                                  if (((word >> 21) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 1) & 0x1) == 0)
+                                      if (((word >> 22) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 21) & 0x1) == 0)
+                                          if (((word >> 23) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 10xxxxxxxxxxxxxxxxxxx0xx00101011
-                                                 svc.  */
-                                              return 723;
+                                                 x1010110000xxxxxxxxxxxxxxxx0xxxx
+                                                 br.  */
+                                              return 632;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 10xxxxxxxxxxxxxxxxxxx1xx00101011
-                                                 dcps1.  */
-                                              return 728;
+                                                 x1010110100xxxxxxxxxxxxxxxx0xxxx
+                                                 eret.  */
+                                              return 635;
                                             }
                                         }
                                       else
                                         {
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 21) & 0x1) == 0)
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             x1010110x10xxxxxxxxxxxxxxxx0xxxx
+                                             ret.  */
+                                          return 634;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 23) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             x10101100x1xxxxxxxxxxxxxxxx0xxxx
+                                             blr.  */
+                                          return 633;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             x10101101x1xxxxxxxxxxxxxxxx0xxxx
+                                             drps.  */
+                                          return 636;
+                                        }
+                                    }
+                                }
+                            }
+                          else
+                            {
+                              if (((word >> 10) & 0x1) == 0)
+                                {
+                                  if (((word >> 21) & 0x1) == 0)
+                                    {
+                                      if (((word >> 22) & 0x1) == 0)
+                                        {
+                                          if (((word >> 23) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 11xxxxxxxxxxxxxxxxxxx0xx00101011
-                                                 smc.  */
-                                              return 725;
+                                                 x10101x0000xxxxxxxxxx0xxxxx1xxxx
+                                                 braaz.  */
+                                              return 641;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 11xxxxxxxxxxxxxxxxxxx1xx00101011
-                                                 dcps3.  */
-                                              return 730;
+                                                 x10101x0100xxxxxxxxxx0xxxxx1xxxx
+                                                 eretaa.  */
+                                              return 647;
                                             }
                                         }
                                             }
                                         }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             x10101x0x10xxxxxxxxxx0xxxxx1xxxx
+                                             retaa.  */
+                                          return 645;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         x10101x0xx1xxxxxxxxxx0xxxxx1xxxx
+                                         blraaz.  */
+                                      return 643;
                                     }
                                 }
                                     }
                                 }
-                            }
-                          else
-                            {
-                              if (((word >> 21) & 0x1) == 0)
+                              else
                                 {
                                 {
-                                  if (((word >> 22) & 0x1) == 0)
+                                  if (((word >> 21) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 23) & 0x1) == 0)
+                                      if (((word >> 22) & 0x1) == 0)
                                         {
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxxxxxxxx0000110101x
-                                             br.  */
-                                          return 629;
+                                          if (((word >> 23) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x10101x0000xxxxxxxxxx1xxxxx1xxxx
+                                                 brabz.  */
+                                              return 642;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x10101x0100xxxxxxxxxx1xxxxx1xxxx
+                                                 eretab.  */
+                                              return 648;
+                                            }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxxxxxxxx0010110101x
-                                             eret.  */
-                                          return 632;
+                                             x10101x0x10xxxxxxxxxx1xxxxx1xxxx
+                                             retab.  */
+                                          return 646;
                                         }
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                         }
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx01x0110101x
-                                         ret.  */
-                                      return 631;
+                                         x10101x0xx1xxxxxxxxxx1xxxxx1xxxx
+                                         blrabz.  */
+                                      return 644;
                                     }
                                 }
                                     }
                                 }
+                            }
+                        }
+                      else
+                        {
+                          if (((word >> 21) & 0x1) == 0)
+                            {
+                              if (((word >> 25) & 0x1) == 0)
+                                {
+                                  /* 33222222222211111111110000000000
+                                     10987654321098765432109876543210
+                                     x1010101xx0xxxxxxxxxxxxxxxxxxxxx
+                                     msr.  */
+                                  return 1157;
+                                }
                               else
                                 {
                               else
                                 {
-                                  if (((word >> 23) & 0x1) == 0)
+                                  if (((word >> 10) & 0x1) == 0)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx1x00110101x
-                                         blr.  */
-                                      return 630;
+                                         x1010111xx0xxxxxxxxxx0xxxxxxxxxx
+                                         braa.  */
+                                      return 637;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx1x10110101x
-                                         drps.  */
-                                      return 633;
+                                         x1010111xx0xxxxxxxxxx1xxxxxxxxxx
+                                         brab.  */
+                                      return 638;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
-                        }
-                      else
-                        {
-                          if (((word >> 21) & 0x1) == 0)
-                            {
-                              /* 33222222222211111111110000000000
-                                 10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxx0xx1x10101x
-                                 msr.  */
-                              return 1136;
-                            }
                           else
                             {
                           else
                             {
-                              /* 33222222222211111111110000000000
-                                 10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxx1xx1x10101x
-                                 sysl.  */
-                              return 1161;
+                              if (((word >> 25) & 0x1) == 0)
+                                {
+                                  /* 33222222222211111111110000000000
+                                     10987654321098765432109876543210
+                                     x1010101xx1xxxxxxxxxxxxxxxxxxxxx
+                                     sysl.  */
+                                  return 1182;
+                                }
+                              else
+                                {
+                                  if (((word >> 10) & 0x1) == 0)
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         x1010111xx1xxxxxxxxxx0xxxxxxxxxx
+                                         blraa.  */
+                                      return 639;
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         x1010111xx1xxxxxxxxxx1xxxxxxxxxx
+                                         blrab.  */
+                                      return 640;
+                                    }
+                                }
                             }
                         }
                     }
                             }
                         }
                     }
@@ -11295,17 +12087,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx001011xx
+                             xx110100xxxxxxxxxxxxxxxxxxxxxxxx
                              cbz.  */
                              cbz.  */
-                          return 634;
+                          return 649;
                         }
                       else
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         }
                       else
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx011011xx
+                             xx110110xxxxxxxxxxxxxxxxxxxxxxxx
                              tbz.  */
                              tbz.  */
-                          return 1171;
+                          return 1192;
                         }
                     }
                   else
                         }
                     }
                   else
@@ -11314,17 +12106,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx101011xx
+                             xx110101xxxxxxxxxxxxxxxxxxxxxxxx
                              cbnz.  */
                              cbnz.  */
-                          return 635;
+                          return 650;
                         }
                       else
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         }
                       else
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx111011xx
+                             xx110111xxxxxxxxxxxxxxxxxxxxxxxx
                              tbnz.  */
                              tbnz.  */
-                          return 1172;
+                          return 1193;
                         }
                     }
                 }
                         }
                     }
                 }
@@ -11346,17 +12138,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx00001100xx
+                                     xx00110000xxxxxxxxxxxxxxxxxxxxxx
                                      st4.  */
                                      st4.  */
-                                  return 431;
+                                  return 434;
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx00001101xx
+                                     xx10110000xxxxxxxxxxxxxxxxxxxxxx
                                      stnp.  */
                                      stnp.  */
-                                  return 922;
+                                  return 943;
                                 }
                             }
                           else
                                 }
                             }
                           else
@@ -11369,17 +12161,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0xxxxxxx000101100xx
+                                             xx001101000xxxxxxx0xxxxxxxxxxxxx
                                              st1.  */
                                              st1.  */
-                                          return 447;
+                                          return 450;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0xxxxxxx100101100xx
+                                             xx001101001xxxxxxx0xxxxxxxxxxxxx
                                              st2.  */
                                              st2.  */
-                                          return 449;
+                                          return 452;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -11388,17 +12180,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx1xxxxxxx000101100xx
+                                             xx001101000xxxxxxx1xxxxxxxxxxxxx
                                              st3.  */
                                              st3.  */
-                                          return 448;
+                                          return 451;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx1xxxxxxx100101100xx
+                                             xx001101001xxxxxxx1xxxxxxxxxxxxx
                                              st4.  */
                                              st4.  */
-                                          return 450;
+                                          return 453;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -11406,9 +12198,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx00101101xx
+                                     xx10110100xxxxxxxxxxxxxxxxxxxxxx
                                      stp.  */
                                      stp.  */
-                                  return 926;
+                                  return 947;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -11422,9 +12214,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx001001100xx
+                                         xx001100100xxxxxxxxxxxxxxxxxxxxx
                                          st4.  */
                                          st4.  */
-                                      return 439;
+                                      return 442;
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
@@ -11432,17 +12224,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0xxxxxxx001101100xx
+                                             xx001101100xxxxxxx0xxxxxxxxxxxxx
                                              st1.  */
                                              st1.  */
-                                          return 459;
+                                          return 462;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx1xxxxxxx001101100xx
+                                             xx001101100xxxxxxx1xxxxxxxxxxxxx
                                              st3.  */
                                              st3.  */
-                                          return 460;
+                                          return 463;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -11452,17 +12244,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxx0xxxxxxx101x01100xx
+                                         xx00110x101xxxxxxx0xxxxxxxxxxxxx
                                          st2.  */
                                          st2.  */
-                                      return 461;
+                                      return 464;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxx1xxxxxxx101x01100xx
+                                         xx00110x101xxxxxxx1xxxxxxxxxxxxx
                                          st4.  */
                                          st4.  */
-                                      return 462;
+                                      return 465;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -11470,9 +12262,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxx01x01101xx
+                                 xx10110x10xxxxxxxxxxxxxxxxxxxxxx
                                  stp.  */
                                  stp.  */
-                              return 931;
+                              return 952;
                             }
                         }
                     }
                             }
                         }
                     }
@@ -11486,17 +12278,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx10001100xx
+                                     xx00110001xxxxxxxxxxxxxxxxxxxxxx
                                      ld4.  */
                                      ld4.  */
-                                  return 435;
+                                  return 438;
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx10001101xx
+                                     xx10110001xxxxxxxxxxxxxxxxxxxxxx
                                      ldnp.  */
                                      ldnp.  */
-                                  return 923;
+                                  return 944;
                                 }
                             }
                           else
                                 }
                             }
                           else
@@ -11509,17 +12301,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0xxxxxxx010101100xx
+                                             xx001101010xxxxxxx0xxxxxxxxxxxxx
                                              ld1.  */
                                              ld1.  */
-                                          return 451;
+                                          return 454;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0xxxxxxx110101100xx
+                                             xx001101011xxxxxxx0xxxxxxxxxxxxx
                                              ld2.  */
                                              ld2.  */
-                                          return 455;
+                                          return 458;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -11528,17 +12320,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx1xxxxxxx010101100xx
+                                             xx001101010xxxxxxx1xxxxxxxxxxxxx
                                              ld3.  */
                                              ld3.  */
-                                          return 452;
+                                          return 455;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx1xxxxxxx110101100xx
+                                             xx001101011xxxxxxx1xxxxxxxxxxxxx
                                              ld4.  */
                                              ld4.  */
-                                          return 456;
+                                          return 459;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -11546,9 +12338,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxxxxxxxxxxxxxx10101101xx
+                                     xx10110101xxxxxxxxxxxxxxxxxxxxxx
                                      ldp.  */
                                      ldp.  */
-                                  return 927;
+                                  return 948;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -11562,9 +12354,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxxxxxxxx011001100xx
+                                         xx001100110xxxxxxxxxxxxxxxxxxxxx
                                          ld4.  */
                                          ld4.  */
-                                      return 443;
+                                      return 446;
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
@@ -11572,17 +12364,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx0xxxxxxx011101100xx
+                                             xx001101110xxxxxxx0xxxxxxxxxxxxx
                                              ld1.  */
                                              ld1.  */
-                                          return 463;
+                                          return 466;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxx1xxxxxxx011101100xx
+                                             xx001101110xxxxxxx1xxxxxxxxxxxxx
                                              ld3.  */
                                              ld3.  */
-                                          return 464;
+                                          return 467;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -11592,17 +12384,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxx0xxxxxxx111x01100xx
+                                         xx00110x111xxxxxxx0xxxxxxxxxxxxx
                                          ld2.  */
                                          ld2.  */
-                                      return 467;
+                                      return 470;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxx1xxxxxxx111x01100xx
+                                         xx00110x111xxxxxxx1xxxxxxxxxxxxx
                                          ld4.  */
                                          ld4.  */
-                                      return 468;
+                                      return 471;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -11610,9 +12402,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
                             {
                               /* 33222222222211111111110000000000
                                  10987654321098765432109876543210
-                                 xxxxxxxxxxxxxxxxxxxxxx11x01101xx
+                                 xx10110x11xxxxxxxxxxxxxxxxxxxxxx
                                  ldp.  */
                                  ldp.  */
-                              return 932;
+                              return 953;
                             }
                         }
                     }
                             }
                         }
                     }
@@ -11625,9 +12417,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxxxx001110xx
+                             xx011100xxxxxxxxxxxxxxxxxxxxxxxx
                              ldr.  */
                              ldr.  */
-                          return 935;
+                          return 956;
                         }
                       else
                         {
                         }
                       else
                         {
@@ -11639,17 +12431,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx00xxxxxxxxxx0x001111xx
+                                         xx111100x0xxxxxxxxxx00xxxxxxxxxx
                                          stur.  */
                                          stur.  */
-                                      return 883;
+                                      return 899;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx00xxxxxxxxxx1x001111xx
+                                         xx111100x1xxxxxxxxxx00xxxxxxxxxx
                                          ldur.  */
                                          ldur.  */
-                                      return 884;
+                                      return 900;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -11658,17 +12450,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx01xxxxxxxxxx0x001111xx
+                                         xx111100x0xxxxxxxxxx10xxxxxxxxxx
                                          str.  */
                                          str.  */
-                                      return 862;
+                                      return 878;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx01xxxxxxxxxx1x001111xx
+                                         xx111100x1xxxxxxxxxx10xxxxxxxxxx
                                          ldr.  */
                                          ldr.  */
-                                      return 863;
+                                      return 879;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -11678,17 +12470,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxx1xxxxxxxxxxx0x001111xx
+                                     xx111100x0xxxxxxxxxxx1xxxxxxxxxx
                                      str.  */
                                      str.  */
-                                  return 839;
+                                  return 855;
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
                                 }
                               else
                                 {
                                   /* 33222222222211111111110000000000
                                      10987654321098765432109876543210
-                                     xxxxxxxxxx1xxxxxxxxxxx1x001111xx
+                                     xx111100x1xxxxxxxxxxx1xxxxxxxxxx
                                      ldr.  */
                                      ldr.  */
-                                  return 840;
+                                  return 856;
                                 }
                             }
                         }
                                 }
                             }
                         }
@@ -11699,17 +12491,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxx0x10111xxx
+                             xxx11101x0xxxxxxxxxxxxxxxxxxxxxx
                              str.  */
                              str.  */
-                          return 850;
+                          return 866;
                         }
                       else
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
                         }
                       else
                         {
                           /* 33222222222211111111110000000000
                              10987654321098765432109876543210
-                             xxxxxxxxxxxxxxxxxxxxxx1x10111xxx
+                             xxx11101x1xxxxxxxxxxxxxxxxxxxxxx
                              ldr.  */
                              ldr.  */
-                          return 851;
+                          return 867;
                         }
                     }
                 }
                         }
                     }
                 }
@@ -11722,168 +12514,94 @@ aarch64_opcode_lookup_1 (uint32_t word)
                     {
                       if (((word >> 28) & 0x1) == 0)
                         {
                     {
                       if (((word >> 28) & 0x1) == 0)
                         {
-                          if (((word >> 10) & 0x1) == 0)
+                          if (((word >> 29) & 0x1) == 0)
                             {
                             {
-                              if (((word >> 29) & 0x1) == 0)
+                              if (((word >> 31) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 11) & 0x1) == 0)
-                                    {
-                                      if (((word >> 12) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx000xxxxxxxx0xx011100xx
-                                             tbl.  */
-                                          return 411;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx001xxxxxxxx0xx011100xx
-                                             tbx.  */
-                                          return 412;
-                                        }
-                                    }
-                                  else
+                                  if (((word >> 10) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 12) & 0x1) == 0)
+                                      if (((word >> 11) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 14) & 0x1) == 0)
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx010x0xxxxxx0xx011100xx
-                                                 trn1.  */
-                                              return 256;
+                                                 0x001110xx0xxxxxxxx000xxxxxxxxxx
+                                                 tbl.  */
+                                              return 414;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx010x1xxxxxx0xx011100xx
-                                                 trn2.  */
-                                              return 259;
+                                                 0x001110xx0xxxxxxxx100xxxxxxxxxx
+                                                 tbx.  */
+                                              return 415;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
-                                        {
-                                          if (((word >> 13) & 0x1) == 0)
-                                            {
-                                              if (((word >> 14) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx01100xxxxxx0xx011100xx
-                                                     uzp1.  */
-                                                  return 255;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx01101xxxxxx0xx011100xx
-                                                     uzp2.  */
-                                                  return 258;
-                                                }
-                                            }
-                                          else
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
                                               if (((word >> 14) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                             {
                                               if (((word >> 14) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01110xxxxxx0xx011100xx
-                                                     zip1.  */
+                                                     0x001110xx0xxxxxx0x010xxxxxxxxxx
+                                                     trn1.  */
                                                   return 257;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                   return 257;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx01111xxxxxx0xx011100xx
-                                                     zip2.  */
+                                                     0x001110xx0xxxxxx1x010xxxxxxxxxx
+                                                     trn2.  */
                                                   return 260;
                                                 }
                                             }
                                                   return 260;
                                                 }
                                             }
-                                        }
-                                    }
-                                }
-                              else
-                                {
-                                  /* 33222222222211111111110000000000
-                                     10987654321098765432109876543210
-                                     xxxxxxxxxx0xxxxxxxxxx0xx011101xx
-                                     ext.  */
-                                  return 129;
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 15) & 0x1) == 0)
-                                {
-                                  if (((word >> 22) & 0x1) == 0)
-                                    {
-                                      if (((word >> 29) & 0x1) == 0)
-                                        {
-                                          if (((word >> 11) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx10xxx0xxxxx00x011100xx
-                                                 dup.  */
-                                              return 146;
-                                            }
                                           else
                                             {
                                           else
                                             {
-                                              if (((word >> 12) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 13) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1100x0xxxxx00x011100xx
-                                                         dup.  */
-                                                      return 147;
+                                                         0x001110xx0xxxxxx00110xxxxxxxxxx
+                                                         uzp1.  */
+                                                      return 256;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1101x0xxxxx00x011100xx
-                                                         smov.  */
-                                                      return 148;
+                                                         0x001110xx0xxxxxx10110xxxxxxxxxx
+                                                         uzp2.  */
+                                                      return 259;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 13) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1110x0xxxxx00x011100xx
-                                                         ins.  */
-                                                      return 151;
+                                                         0x001110xx0xxxxxx01110xxxxxxxxxx
+                                                         zip1.  */
+                                                      return 258;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1111x0xxxxx00x011100xx
-                                                         umov.  */
-                                                      return 149;
+                                                         0x001110xx0xxxxxx11110xxxxxxxxxx
+                                                         zip2.  */
+                                                      return 261;
                                                     }
                                                 }
                                             }
                                         }
                                                     }
                                                 }
                                             }
                                         }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx1xxxx0xxxxx00x011101xx
-                                             ins.  */
-                                          return 153;
-                                        }
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
@@ -11893,277 +12611,494 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               if (((word >> 13) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 13) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 22) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110x00xxxxxxx0001xxxxxxxxxx
+                                                         dup.  */
+                                                      return 147;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1000x0xxxxx010011100xx
+                                                             0x001110010xxxxxxx0001xxxxxxxxxx
                                                              fmaxnm.  */
                                                              fmaxnm.  */
-                                                          return 285;
+                                                          return 286;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1000x0xxxxx010011101xx
-                                                             fmaxnmp.  */
-                                                          return 336;
+                                                             0x001110110xxxxxxx0001xxxxxxxxxx
+                                                             fminnm.  */
+                                                          return 302;
                                                         }
                                                     }
                                                         }
                                                     }
-                                                  else
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     0x001110xx0xxxxxxx1001xxxxxxxxxx
+                                                     fcmeq.  */
+                                                  return 294;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 13) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 15) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 23) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1000x0xxxxx011011100xx
-                                                             fminnm.  */
-                                                          return 301;
+                                                             0x0011100x0xxxxx0x0101xxxxxxxxxx
+                                                             fadd.  */
+                                                          return 290;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1000x0xxxxx011011101xx
-                                                             fminnmp.  */
-                                                          return 352;
+                                                             0x0011101x0xxxxx0x0101xxxxxxxxxx
+                                                             fsub.  */
+                                                          return 306;
                                                         }
                                                     }
                                                         }
                                                     }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110xx0xxxxx1x0101xxxxxxxxxx
+                                                         sdot.  */
+                                                      return 1987;
+                                                    }
                                                 }
                                               else
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
                                                 }
                                               else
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x0011100x0xxxxxxx1101xxxxxxxxxx
+                                                         fmax.  */
+                                                      return 296;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x0011101x0xxxxxxx1101xxxxxxxxxx
+                                                         fmin.  */
+                                                      return 308;
+                                                    }
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
+                                            {
+                                              if (((word >> 13) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110x00xxxxxxx0011xxxxxxxxxx
+                                                         dup.  */
+                                                      return 148;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1001x0xxxxx010011100xx
-                                                             fcmeq.  */
-                                                          return 293;
+                                                             0x001110010xxxxxxx0011xxxxxxxxxx
+                                                             fmla.  */
+                                                          return 288;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1001x0xxxxx010011101xx
-                                                             fcmge.  */
-                                                          return 342;
+                                                             0x001110110xxxxxxx0011xxxxxxxxxx
+                                                             fmls.  */
+                                                          return 304;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     0x001110xx0xxxxxxx1011xxxxxxxxxx
+                                                     smov.  */
+                                                  return 149;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 13) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110x00xxxxxxx0111xxxxxxxxxx
+                                                         ins.  */
+                                                      return 152;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110x10xxxxxxx0111xxxxxxxxxx
+                                                         fmulx.  */
+                                                      return 292;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 22) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         0x001110x00xxxxxxx1111xxxxxxxxxx
+                                                         umov.  */
+                                                      return 150;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 23) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110010xxxxxxx1111xxxxxxxxxx
+                                                             frecps.  */
+                                                          return 298;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110110xxxxxxx1111xxxxxxxxxx
+                                                             frsqrts.  */
+                                                          return 310;
                                                         }
                                                     }
                                                         }
                                                     }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 22) & 0x1) == 0)
+                                    {
+                                      if (((word >> 23) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1x001110000xxxxxxxxxxxxxxxxxxxxx
+                                             eor3.  */
+                                          return 1994;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1x001110100xxxxxxxxxxxxxxxxxxxxx
+                                             xar.  */
+                                          return 1996;
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 15) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             1x001110x10xxxxx0xxxxxxxxxxxxxxx
+                                             sm3ss1.  */
+                                          return 1998;
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 10) & 0x1) == 0)
+                                            {
+                                              if (((word >> 11) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         1x001110010xxxxx1xxx00xxxxxxxxxx
+                                                         sm3tt1a.  */
+                                                      return 1999;
+                                                    }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1001x0xxxxx01101110xxx
-                                                         fcmgt.  */
-                                                      return 356;
+                                                         1x001110110xxxxx1xxx00xxxxxxxxxx
+                                                         sha512su0.  */
+                                                      return 1992;
                                                     }
                                                 }
                                                     }
                                                 }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     1x001110x10xxxxx1xxx10xxxxxxxxxx
+                                                     sm3tt2a.  */
+                                                  return 2001;
+                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              if (((word >> 13) & 0x1) == 0)
+                                              if (((word >> 11) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         1x001110010xxxxx1xxx01xxxxxxxxxx
+                                                         sm3tt1b.  */
+                                                      return 2000;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         1x001110110xxxxx1xxx01xxxxxxxxxx
+                                                         sm4e.  */
+                                                      return 2005;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     1x001110x10xxxxx1xxx11xxxxxxxxxx
+                                                     sm3tt2b.  */
+                                                  return 2002;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                          else
+                            {
+                              if (((word >> 10) & 0x1) == 0)
+                                {
+                                  /* 33222222222211111111110000000000
+                                     10987654321098765432109876543210
+                                     xx101110xx0xxxxxxxxxx0xxxxxxxxxx
+                                     ext.  */
+                                  return 130;
+                                }
+                              else
+                                {
+                                  if (((word >> 15) & 0x1) == 0)
+                                    {
+                                      if (((word >> 22) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xx101110x00xxxxx0xxxx1xxxxxxxxxx
+                                             ins.  */
+                                          return 154;
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 11) & 0x1) == 0)
+                                            {
+                                              if (((word >> 12) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 23) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1010x0xxxxx010011100xx
-                                                             fadd.  */
-                                                          return 289;
+                                                             xx101110010xxxxx0x0001xxxxxxxxxx
+                                                             fmaxnmp.  */
+                                                          return 337;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1010x0xxxxx010011101xx
-                                                             faddp.  */
-                                                          return 338;
+                                                             xx101110110xxxxx0x0001xxxxxxxxxx
+                                                             fminnmp.  */
+                                                          return 353;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 23) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1010x0xxxxx011011100xx
-                                                             fsub.  */
-                                                          return 305;
+                                                             xx101110010xxxxx0x1001xxxxxxxxxx
+                                                             fcmge.  */
+                                                          return 343;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1010x0xxxxx011011101xx
-                                                             fabd.  */
-                                                          return 354;
+                                                             xx101110110xxxxx0x1001xxxxxxxxxx
+                                                             fcmgt.  */
+                                                          return 357;
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 23) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1011x0xxxxx010011100xx
-                                                             fmax.  */
-                                                          return 295;
+                                                             xx101110010xxxxx0x0101xxxxxxxxxx
+                                                             faddp.  */
+                                                          return 339;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1011x0xxxxx010011101xx
-                                                             fmaxp.  */
-                                                          return 346;
+                                                             xx101110110xxxxx0x0101xxxxxxxxxx
+                                                             fabd.  */
+                                                          return 355;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 23) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1011x0xxxxx011011100xx
-                                                             fmin.  */
-                                                          return 307;
+                                                             xx101110010xxxxx0x1101xxxxxxxxxx
+                                                             fmaxp.  */
+                                                          return 347;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx1011x0xxxxx011011101xx
+                                                             xx101110110xxxxx0x1101xxxxxxxxxx
                                                              fminp.  */
                                                              fminp.  */
-                                                          return 360;
+                                                          return 361;
                                                         }
                                                     }
                                                 }
                                             }
                                                         }
                                                     }
                                                 }
                                             }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 12) & 0x1) == 0)
+                                          else
                                             {
                                             {
-                                              if (((word >> 13) & 0x1) == 0)
+                                              if (((word >> 12) & 0x1) == 0)
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                 {
                                                   if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1100x0xxxxx01001110xxx
-                                                         fmla.  */
-                                                      return 287;
+                                                         xx101110010xxxxx0xx011xxxxxxxxxx
+                                                         facge.  */
+                                                      return 345;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1100x0xxxxx01101110xxx
-                                                         fmls.  */
-                                                      return 303;
+                                                         xx101110110xxxxx0xx011xxxxxxxxxx
+                                                         facgt.  */
+                                                      return 359;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1101x0xxxxx01001110xxx
-                                                         facge.  */
-                                                      return 344;
+                                                         xx101110x10xxxxx0x0111xxxxxxxxxx
+                                                         fmul.  */
+                                                      return 341;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1101x0xxxxx01101110xxx
-                                                         facgt.  */
-                                                      return 358;
+                                                         xx101110x10xxxxx0x1111xxxxxxxxxx
+                                                         fdiv.  */
+                                                      return 349;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                          else
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 13) & 0x1) == 0)
+                                        {
+                                          if (((word >> 14) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 13) & 0x1) == 0)
+                                              if (((word >> 11) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 12) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1110x0xxxxx01x011100xx
-                                                         fmulx.  */
-                                                      return 291;
+                                                         xx101110xx0xxxxx100001xxxxxxxxxx
+                                                         sqrdmlah.  */
+                                                      return 364;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1110x0xxxxx01x011101xx
-                                                         fmul.  */
-                                                      return 340;
+                                                         xx101110xx0xxxxx100101xxxxxxxxxx
+                                                         udot.  */
+                                                      return 1986;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx1111x0xxxxx010011100xx
-                                                             frecps.  */
-                                                          return 297;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx1111x0xxxxx010011101xx
-                                                             fdiv.  */
-                                                          return 348;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx1111x0xxxxx01101110xxx
-                                                         frsqrts.  */
-                                                      return 309;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx101110xx0xxxxx100x11xxxxxxxxxx
+                                                     sqrdmlsh.  */
+                                                  return 365;
                                                 }
                                             }
                                                 }
                                             }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xx101110xx0xxxxx110xx1xxxxxxxxxx
+                                                 fcmla.  */
+                                              return 366;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xx101110xx0xxxxx1x1xx1xxxxxxxxxx
+                                             fcadd.  */
+                                          return 367;
                                         }
                                         }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 11) & 0x1) == 0)
-                                    {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxx10xxx1xxxxx0xx01110xxx
-                                         sqrdmlah.  */
-                                      return 363;
-                                    }
-                                  else
-                                    {
-                                      /* 33222222222211111111110000000000
-                                         10987654321098765432109876543210
-                                         xxxxxxxxxx11xxx1xxxxx0xx01110xxx
-                                         sqrdmlsh.  */
-                                      return 364;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -12180,17 +13115,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxxx00xxx0xx0111100x
+                                             x0011110xx0xxx00xxxxxxxxxxxxxxxx
                                              fcvtzs.  */
                                              fcvtzs.  */
-                                          return 737;
+                                          return 752;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxxx01xxx0xx0111100x
+                                             x0011110xx0xxx10xxxxxxxxxxxxxxxx
                                              scvtf.  */
                                              scvtf.  */
-                                          return 733;
+                                          return 748;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -12199,17 +13134,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxxx10xxx0xx0111100x
+                                             x0011110xx0xxx01xxxxxxxxxxxxxxxx
                                              fcvtzu.  */
                                              fcvtzu.  */
-                                          return 739;
+                                          return 754;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxxxxxx11xxx0xx0111100x
+                                             x0011110xx0xxx11xxxxxxxxxxxxxxxx
                                              ucvtf.  */
                                              ucvtf.  */
-                                          return 735;
+                                          return 750;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -12225,17 +13160,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x000xxxxxx0xx0111101x
+                                                     x1011110xx0xxxxxx000x0xxxxxxxxxx
                                                      sha1c.  */
                                                      sha1c.  */
-                                                  return 657;
+                                                  return 672;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x001xxxxxx0xx0111101x
+                                                     x1011110xx0xxxxxx100x0xxxxxxxxxx
                                                      sha256h.  */
                                                      sha256h.  */
-                                                  return 661;
+                                                  return 676;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -12244,17 +13179,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x010xxxxxx0xx0111101x
+                                                     x1011110xx0xxxxxx010x0xxxxxxxxxx
                                                      sha1m.  */
                                                      sha1m.  */
-                                                  return 659;
+                                                  return 674;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x011xxxxxx0xx0111101x
+                                                     x1011110xx0xxxxxx110x0xxxxxxxxxx
                                                      sha256su1.  */
                                                      sha256su1.  */
-                                                  return 663;
+                                                  return 678;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -12266,26 +13201,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x100xxxxxx0xx0111101x
+                                                     x1011110xx0xxxxxx001x0xxxxxxxxxx
                                                      sha1p.  */
                                                      sha1p.  */
-                                                  return 658;
+                                                  return 673;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x101xxxxxx0xx0111101x
+                                                     x1011110xx0xxxxxx101x0xxxxxxxxxx
                                                      sha256h2.  */
                                                      sha256h2.  */
-                                                  return 662;
+                                                  return 677;
                                                 }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                                 }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0x11xxxxxxx0xx0111101x
+                                                 x1011110xx0xxxxxxx11x0xxxxxxxxxx
                                                  sha1su0.  */
                                                  sha1su0.  */
-                                              return 660;
+                                              return 675;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -12297,17 +13232,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx10x0xxxxxxx0xx0111101x
+                                                 x1011110xx0xxxxxxx0x01xxxxxxxxxx
                                                  dup.  */
                                                  dup.  */
-                                              return 526;
+                                              return 529;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx10x1xxxxxxx0xx0111101x
+                                                 x1011110xx0xxxxxxx1x01xxxxxxxxxx
                                                  fcmeq.  */
                                                  fcmeq.  */
-                                              return 547;
+                                              return 550;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -12316,9 +13251,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11x0xxxxxxx0xx0111101x
+                                                 x1011110xx0xxxxxxx0x11xxxxxxxxxx
                                                  fmulx.  */
                                                  fmulx.  */
-                                              return 545;
+                                              return 548;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
@@ -12326,17 +13261,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx11x1xxxxxxx0x00111101x
+                                                     x10111100x0xxxxxxx1x11xxxxxxxxxx
                                                      frecps.  */
                                                      frecps.  */
-                                                  return 549;
+                                                  return 552;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx11x1xxxxxxx0x10111101x
+                                                     x10111101x0xxxxxxx1x11xxxxxxxxxx
                                                      frsqrts.  */
                                                      frsqrts.  */
-                                                  return 551;
+                                                  return 554;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -12353,9 +13288,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxx000xxxxxxx0xx011111xx
+                                             xx111110xx0xxxxxxx000xxxxxxxxxxx
                                              sqrdmlah.  */
                                              sqrdmlah.  */
-                                          return 579;
+                                          return 582;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -12363,17 +13298,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxx001xxxxxxx0x0011111xx
+                                                 xx1111100x0xxxxxxx100xxxxxxxxxxx
                                                  fcmge.  */
                                                  fcmge.  */
-                                              return 564;
+                                              return 567;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxxx001xxxxxxx0x1011111xx
+                                                 xx1111101x0xxxxxxx100xxxxxxxxxxx
                                                  fcmgt.  */
                                                  fcmgt.  */
-                                              return 570;
+                                              return 573;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -12381,9 +13316,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxx01xxxxxxxx0xx011111xx
+                                         xx111110xx0xxxxxxxx10xxxxxxxxxxx
                                          fabd.  */
                                          fabd.  */
-                                      return 568;
+                                      return 571;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -12392,9 +13327,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxx1x0xxxxxxx0xx011111xx
+                                         xx111110xx0xxxxxxx0x1xxxxxxxxxxx
                                          sqrdmlsh.  */
                                          sqrdmlsh.  */
-                                      return 580;
+                                      return 583;
                                     }
                                   else
                                     {
                                     }
                                   else
                                     {
@@ -12402,17 +13337,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxx1x1xxxxxxx0x0011111xx
+                                             xx1111100x0xxxxxxx1x1xxxxxxxxxxx
                                              facge.  */
                                              facge.  */
-                                          return 566;
+                                          return 569;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxx1x1xxxxxxx0x1011111xx
+                                             xx1111101x0xxxxxxx1x1xxxxxxxxxxx
                                              facgt.  */
                                              facgt.  */
-                                          return 572;
+                                          return 575;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -12421,298 +13356,746 @@ aarch64_opcode_lookup_1 (uint32_t word)
                     }
                   else
                     {
                     }
                   else
                     {
-                      if (((word >> 10) & 0x1) == 0)
+                      if (((word >> 28) & 0x1) == 0)
                         {
                         {
-                          if (((word >> 11) & 0x1) == 0)
+                          if (((word >> 15) & 0x1) == 0)
                             {
                             {
-                              if (((word >> 12) & 0x1) == 0)
+                              if (((word >> 29) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 13) & 0x1) == 0)
+                                  if (((word >> 31) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      if (((word >> 10) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          if (((word >> 11) & 0x1) == 0)
+                                            {
+                                              if (((word >> 12) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 13) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx000000xxxxxxxxxx
+                                                                 saddl.  */
+                                                              return 42;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx000000xxxxxxxxxx
+                                                                 saddl2.  */
+                                                              return 43;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx010000xxxxxxxxxx
+                                                                 addhn.  */
+                                                              return 50;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx010000xxxxxxxxxx
+                                                                 addhn2.  */
+                                                              return 51;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx001000xxxxxxxxxx
+                                                                 ssubl.  */
+                                                              return 46;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx001000xxxxxxxxxx
+                                                                 ssubl2.  */
+                                                              return 47;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx011000xxxxxxxxxx
+                                                                 subhn.  */
+                                                              return 54;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx011000xxxxxxxxxx
+                                                                 subhn2.  */
+                                                              return 55;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 13) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx000100xxxxxxxxxx
+                                                                 saddw.  */
+                                                              return 44;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx000100xxxxxxxxxx
+                                                                 saddw2.  */
+                                                              return 45;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx010100xxxxxxxxxx
+                                                                 sabal.  */
+                                                              return 52;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx010100xxxxxxxxxx
+                                                                 sabal2.  */
+                                                              return 53;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx001100xxxxxxxxxx
+                                                                 ssubw.  */
+                                                              return 48;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx001100xxxxxxxxxx
+                                                                 ssubw2.  */
+                                                              return 49;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 00001110xx1xxxxx011100xxxxxxxxxx
+                                                                 sabdl.  */
+                                                              return 56;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx011100xxxxxxxxxx
+                                                                 sabdl2.  */
+                                                              return 57;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                          else
                                             {
                                             {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              if (((word >> 12) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000000xxxxx1xx0111000x
-                                                             saddl.  */
-                                                          return 42;
+                                                             0x001110xx1xxxxx000010xxxxxxxxxx
+                                                             rev64.  */
+                                                          return 156;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000000xxxxx1xx0111001x
-                                                             saddl2.  */
-                                                          return 43;
+                                                          if (((word >> 16) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 19) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110xx1x0xx0010010xxxxxxxxxx
+                                                                     cls.  */
+                                                                  return 160;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110xx1x1xx0010010xxxxxxxxxx
+                                                                     aese.  */
+                                                                  return 665;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     00001110xx1xxxx1010010xxxxxxxxxx
+                                                                     sqxtn.  */
+                                                                  return 170;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     01001110xx1xxxx1010010xxxxxxxxxx
+                                                                     sqxtn2.  */
+                                                                  return 171;
+                                                                }
+                                                            }
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000000xxxxx1xx0111010x
-                                                             uaddl.  */
-                                                          return 74;
+                                                          if (((word >> 16) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x001110xx1xxxx0001010xxxxxxxxxx
+                                                                 saddlp.  */
+                                                              return 158;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     00001110xx1xxxx1001010xxxxxxxxxx
+                                                                     xtn.  */
+                                                                  return 168;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     01001110xx1xxxx1001010xxxxxxxxxx
+                                                                     xtn2.  */
+                                                                  return 169;
+                                                                }
+                                                            }
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000000xxxxx1xx0111011x
-                                                             uaddl2.  */
-                                                          return 75;
+                                                          if (((word >> 16) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 19) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110xx1x0xx0011010xxxxxxxxxx
+                                                                     sadalp.  */
+                                                                  return 162;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110xx1x1xx0011010xxxxxxxxxx
+                                                                     aesmc.  */
+                                                                  return 667;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     00001110xx1xxxx1011010xxxxxxxxxx
+                                                                     fcvtn.  */
+                                                                  return 172;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     01001110xx1xxxx1011010xxxxxxxxxx
+                                                                     fcvtn2.  */
+                                                                  return 173;
+                                                                }
+                                                            }
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 16) & 0x1) == 0)
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 17) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx000110xxxxxxxxxx
+                                                             rev16.  */
+                                                          return 157;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000000001xx01111xxx
-                                                                         fcvtns.  */
-                                                                      return 741;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000000011xx01111xxx
-                                                                         fcvtms.  */
-                                                                      return 761;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000000101xx01111xxx
-                                                                         fcvtps.  */
-                                                                      return 757;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000000111xx01111xxx
-                                                                         fcvtzs.  */
-                                                                      return 765;
-                                                                    }
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x001110xx1x0xxx010110xxxxxxxxxx
+                                                                 cnt.  */
+                                                              return 161;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000000001xx1xx01111xxx
-                                                                 fcvtas.  */
-                                                              return 749;
+                                                                 0x001110xx1x1xxx010110xxxxxxxxxx
+                                                                 aesd.  */
+                                                              return 666;
                                                             }
                                                         }
                                                             }
                                                         }
-                                                      else
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000000010xx1xx01111xxx
-                                                                 scvtf.  */
-                                                              return 745;
+                                                                 0x001110xx10xxxx001110xxxxxxxxxx
+                                                                 suqadd.  */
+                                                              return 159;
                                                             }
                                                           else
                                                             }
                                                           else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x001110xx11xxxx001110xxxxxxxxxx
+                                                                 saddlv.  */
+                                                              return 27;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 16) & 0x1) == 0)
                                                             {
                                                               if (((word >> 19) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                             {
                                                               if (((word >> 19) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0000000110x1xx01111xxx
-                                                                     fmov.  */
-                                                                  return 753;
+                                                                     0x001110xx1x0xx0011110xxxxxxxxxx
+                                                                     sqabs.  */
+                                                                  return 163;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0000000111x1xx01111xxx
-                                                                     fmov.  */
-                                                                  return 769;
+                                                                     0x001110xx1x1xx0011110xxxxxxxxxx
+                                                                     aesimc.  */
+                                                                  return 668;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 30) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     00001110xx1xxxx1011110xxxxxxxxxx
+                                                                     fcvtl.  */
+                                                                  return 174;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     01001110xx1xxxx1011110xxxxxxxxxx
+                                                                     fcvtl2.  */
+                                                                  return 175;
                                                                 }
                                                             }
                                                         }
                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
-                                                  else
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 11) & 0x1) == 0)
+                                            {
+                                              if (((word >> 12) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 13) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx000001xxxxxxxxxx
+                                                             shadd.  */
+                                                          return 262;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx010001xxxxxxxxxx
+                                                             sshl.  */
+                                                          return 269;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx001001xxxxxxxxxx
+                                                             shsub.  */
+                                                          return 265;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx011001xxxxxxxxxx
+                                                             smax.  */
+                                                          return 273;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 13) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx000101xxxxxxxxxx
+                                                             srhadd.  */
+                                                          return 264;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx010101xxxxxxxxxx
+                                                             srshl.  */
+                                                          return 271;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx001101xxxxxxxxxx
+                                                             cmgt.  */
+                                                          return 267;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx011101xxxxxxxxxx
+                                                             sabd.  */
+                                                          return 275;
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 12) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 13) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx000011xxxxxxxxxx
+                                                             sqadd.  */
+                                                          return 263;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx010011xxxxxxxxxx
+                                                             sqshl.  */
+                                                          return 270;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx001011xxxxxxxxxx
+                                                             sqsub.  */
+                                                          return 266;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx011011xxxxxxxxxx
+                                                             smin.  */
+                                                          return 274;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 13) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 17) & 0x1) == 0)
+                                                      if (((word >> 14) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 22) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 19) & 0x1) == 0)
+                                                              if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000100001xx01111xxx
-                                                                         fcvtnu.  */
-                                                                      return 743;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000100011xx01111xxx
-                                                                         fcvtmu.  */
-                                                                      return 763;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110001xxxxx000111xxxxxxxxxx
+                                                                     and.  */
+                                                                  return 299;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 20) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000100101xx01111xxx
-                                                                         fcvtpu.  */
-                                                                      return 759;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx000000100111xx01111xxx
-                                                                         fcvtzu.  */
-                                                                      return 767;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x001110101xxxxx000111xxxxxxxxxx
+                                                                     orr.  */
+                                                                  return 311;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx000000101xx1xx01111xxx
-                                                                 fcvtau.  */
-                                                              return 751;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 18) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx000000110xx1xx01111xxx
-                                                                 ucvtf.  */
-                                                              return 747;
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 19) & 0x1) == 0)
+                                                              if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0000001110x1xx01111xxx
-                                                                     fmov.  */
-                                                                  return 755;
+                                                                     0x001110011xxxxx000111xxxxxxxxxx
+                                                                     bic.  */
+                                                                  return 300;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0000001111x1xx01111xxx
-                                                                     fmov.  */
-                                                                  return 770;
+                                                                     0x001110111xxxxx000111xxxxxxxxxx
+                                                                     orn.  */
+                                                                  return 313;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx010111xxxxxxxxxx
+                                                             sqrshl.  */
+                                                          return 272;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 14) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx001111xxxxxxxxxx
+                                                             cmge.  */
+                                                          return 268;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx011111xxxxxxxxxx
+                                                             saba.  */
+                                                          return 276;
+                                                        }
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                          else
+                                        }
+                                    }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         1x001110xx1xxxxx0xxxxxxxxxxxxxxx
+                                         bcax.  */
+                                      return 1997;
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 10) & 0x1) == 0)
+                                    {
+                                      if (((word >> 11) & 0x1) == 0)
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 29) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000001xxxxx1xx0111x00x
-                                                         smlal.  */
-                                                      return 58;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0101110xx1xxxxx000000xxxxxxxxxx
+                                                             uaddl.  */
+                                                          return 74;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1101110xx1xxxxx000000xxxxxxxxxx
+                                                             uaddl2.  */
+                                                          return 75;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000001xxxxx1xx0111x01x
-                                                         smlal2.  */
-                                                      return 59;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0101110xx1xxxxx010000xxxxxxxxxx
+                                                             raddhn.  */
+                                                          return 82;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1101110xx1xxxxx010000xxxxxxxxxx
+                                                             raddhn2.  */
+                                                          return 83;
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000001xxxxx1xx0111x10x
-                                                         umlal.  */
-                                                      return 90;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0101110xx1xxxxx001000xxxxxxxxxx
+                                                             usubl.  */
+                                                          return 78;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1101110xx1xxxxx001000xxxxxxxxxx
+                                                             usubl2.  */
+                                                          return 79;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000001xxxxx1xx0111x11x
-                                                         umlal2.  */
-                                                      return 91;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0101110xx1xxxxx011000xxxxxxxxxx
+                                                             rsubhn.  */
+                                                          return 86;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1101110xx1xxxxx011000xxxxxxxxxx
+                                                             rsubhn2.  */
+                                                          return 87;
+                                                        }
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 28) & 0x1) == 0)
+                                          else
                                             {
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       if (((word >> 30) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                     {
                                                       if (((word >> 30) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000010xxxxx1xx0111000x
-                                                             addhn.  */
-                                                          return 50;
+                                                             x0101110xx1xxxxx000100xxxxxxxxxx
+                                                             uaddw.  */
+                                                          return 76;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000010xxxxx1xx0111001x
-                                                             addhn2.  */
-                                                          return 51;
+                                                             x1101110xx1xxxxx000100xxxxxxxxxx
+                                                             uaddw2.  */
+                                                          return 77;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -12721,39 +14104,39 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000010xxxxx1xx0111010x
-                                                             raddhn.  */
-                                                          return 82;
+                                                             x0101110xx1xxxxx010100xxxxxxxxxx
+                                                             uabal.  */
+                                                          return 84;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000010xxxxx1xx0111011x
-                                                             raddhn2.  */
-                                                          return 83;
+                                                             x1101110xx1xxxxx010100xxxxxxxxxx
+                                                             uabal2.  */
+                                                          return 85;
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       if (((word >> 30) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                     {
                                                       if (((word >> 30) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000011xxxxx1xx0111000x
-                                                             smull.  */
-                                                          return 66;
+                                                             x0101110xx1xxxxx001100xxxxxxxxxx
+                                                             usubw.  */
+                                                          return 80;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000011xxxxx1xx0111001x
-                                                             smull2.  */
-                                                          return 67;
+                                                             x1101110xx1xxxxx001100xxxxxxxxxx
+                                                             usubw2.  */
+                                                          return 81;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -12762,379 +14145,426 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000011xxxxx1xx0111010x
-                                                             umull.  */
-                                                          return 94;
+                                                             x0101110xx1xxxxx011100xxxxxxxxxx
+                                                             uabdl.  */
+                                                          return 88;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx000011xxxxx1xx0111011x
-                                                             umull2.  */
-                                                          return 95;
+                                                             x1101110xx1xxxxx011100xxxxxxxxxx
+                                                             uabdl2.  */
+                                                          return 89;
                                                         }
                                                     }
                                                 }
                                             }
                                                         }
                                                     }
                                                 }
                                             }
-                                          else
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 17) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 15) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx000010xxxxxxxxxx
+                                                         rev32.  */
+                                                      return 207;
+                                                    }
+                                                  else
                                                     {
                                                       if (((word >> 16) & 0x1) == 0)
                                                         {
                                                     {
                                                       if (((word >> 16) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010000xx1xx01111xxx
-                                                                 fmov.  */
-                                                              return 783;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010001xx1xx01111xxx
-                                                                 frintn.  */
-                                                              return 792;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110xx1xxxx0010010xxxxxxxxxx
+                                                             clz.  */
+                                                          return 210;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010100xx1xx01111xxx
-                                                                 fneg.  */
-                                                              return 787;
+                                                                 x0101110xx1xxxx1010010xxxxxxxxxx
+                                                                 uqxtn.  */
+                                                              return 220;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010101xx1xx01111xxx
-                                                                 frintm.  */
-                                                              return 796;
+                                                                 x1101110xx1xxxx1010010xxxxxxxxxx
+                                                                 uqxtn2.  */
+                                                              return 221;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
-                                                  else
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       if (((word >> 16) & 0x1) == 0)
                                                         {
                                                     {
                                                       if (((word >> 16) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110xx1xxxx0001010xxxxxxxxxx
+                                                             uaddlp.  */
+                                                          return 208;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000011000xx1xx01111xxx
-                                                                 fabs.  */
-                                                              return 785;
+                                                                 x0101110xx1xxxx1001010xxxxxxxxxx
+                                                                 sqxtun.  */
+                                                              return 216;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000011001xx1xx01111xxx
-                                                                 frintp.  */
-                                                              return 794;
+                                                                 x1101110xx1xxxx1001010xxxxxxxxxx
+                                                                 sqxtun2.  */
+                                                              return 217;
                                                             }
                                                         }
                                                             }
                                                         }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 16) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110xx1xxxx0011010xxxxxxxxxx
+                                                             uadalp.  */
+                                                          return 211;
+                                                        }
                                                       else
                                                         {
                                                       else
                                                         {
-                                                          if (((word >> 18) & 0x1) == 0)
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000011100xx1xx01111xxx
-                                                                 fsqrt.  */
-                                                              return 789;
+                                                                 x0101110xx1xxxx1011010xxxxxxxxxx
+                                                                 fcvtxn.  */
+                                                              return 222;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000011101xx1xx01111xxx
-                                                                 frintz.  */
-                                                              return 798;
+                                                                 x1101110xx1xxxx1011010xxxxxxxxxx
+                                                                 fcvtxn2.  */
+                                                              return 223;
                                                             }
                                                         }
                                                     }
                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
-                                              else
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 18) & 0x1) == 0)
+                                                  if (((word >> 22) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00001xx10xx1xx01111xxx
-                                                         fcvt.  */
-                                                      return 791;
+                                                         xx101110x01xxxxx0x0110xxxxxxxxxx
+                                                         not.  */
+                                                      return 236;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 15) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110x11xxxxx0x0110xxxxxxxxxx
+                                                         rbit.  */
+                                                      return 238;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 14) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 16) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 16) & 0x1) == 0)
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010011xx1xx01111xxx
-                                                                 frinta.  */
-                                                              return 800;
+                                                                 xx101110xx10xxx0001110xxxxxxxxxx
+                                                                 usqadd.  */
+                                                              return 209;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx000010111xx1xx01111xxx
-                                                                 frintx.  */
-                                                              return 802;
+                                                                 xx101110xx11xxx0001110xxxxxxxxxx
+                                                                 uaddlv.  */
+                                                              return 31;
                                                             }
                                                         }
                                                       else
                                                         {
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000011x11xx1xx01111xxx
-                                                             frinti.  */
-                                                          return 804;
+                                                          if (((word >> 30) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x0101110xx1xxxx1001110xxxxxxxxxx
+                                                                 shll.  */
+                                                              return 218;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x1101110xx1xxxx1001110xxxxxxxxxx
+                                                                 shll2.  */
+                                                              return 219;
+                                                            }
                                                         }
                                                     }
                                                         }
                                                     }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx011110xxxxxxxxxx
+                                                         sqneg.  */
+                                                      return 212;
+                                                    }
                                                 }
                                             }
                                         }
                                     }
                                   else
                                     {
                                                 }
                                             }
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      if (((word >> 11) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000100xxxxx1xx0111000x
-                                                             ssubl.  */
-                                                          return 46;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000100xxxxx1xx0111001x
-                                                             ssubl2.  */
-                                                          return 47;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx000001xxxxxxxxxx
+                                                         uhadd.  */
+                                                      return 314;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000100xxxxx1xx0111010x
-                                                             usubl.  */
-                                                          return 78;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx000100xxxxx1xx0111011x
-                                                             usubl2.  */
-                                                          return 79;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx010001xxxxxxxxxx
+                                                         ushl.  */
+                                                      return 321;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 3) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 4) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxx00xxxxx000100xxxxx1xx01111xxx
-                                                             fcmp.  */
-                                                          return 775;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxx01xxxxx000100xxxxx1xx01111xxx
-                                                             fcmpe.  */
-                                                          return 777;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx001001xxxxxxxxxx
+                                                         uhsub.  */
+                                                      return 317;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 4) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxx10xxxxx000100xxxxx1xx01111xxx
-                                                             fcmp.  */
-                                                          return 779;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxx11xxxxx000100xxxxx1xx01111xxx
-                                                             fcmpe.  */
-                                                          return 781;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx011001xxxxxxxxxx
+                                                         umax.  */
+                                                      return 325;
                                                     }
                                                 }
                                             }
                                           else
                                             {
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 29) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx000101xxxxx1xx0111x00x
-                                                         smlsl.  */
-                                                      return 62;
+                                                         xx101110xx1xxxxx000101xxxxxxxxxx
+                                                         urhadd.  */
+                                                      return 316;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx000101xxxxx1xx0111x01x
-                                                         smlsl2.  */
-                                                      return 63;
+                                                         xx101110xx1xxxxx010101xxxxxxxxxx
+                                                         urshl.  */
+                                                      return 323;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx000101xxxxx1xx0111x10x
-                                                         umlsl.  */
-                                                      return 92;
+                                                         xx101110xx1xxxxx001101xxxxxxxxxx
+                                                         cmhi.  */
+                                                      return 319;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx000101xxxxx1xx0111x11x
-                                                         umlsl2.  */
-                                                      return 93;
+                                                         xx101110xx1xxxxx011101xxxxxxxxxx
+                                                         uabd.  */
+                                                      return 327;
                                                     }
                                                 }
                                             }
                                         }
                                       else
                                         {
                                                     }
                                                 }
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          if (((word >> 12) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 29) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx000110xxxxx1xx0111x00x
-                                                         subhn.  */
-                                                      return 54;
+                                                         xx101110xx1xxxxx000011xxxxxxxxxx
+                                                         uqadd.  */
+                                                      return 315;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx000110xxxxx1xx0111x01x
-                                                         subhn2.  */
-                                                      return 55;
+                                                         xx101110xx1xxxxx010011xxxxxxxxxx
+                                                         uqshl.  */
+                                                      return 322;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx000110xxxxx1xx0111x10x
-                                                         rsubhn.  */
-                                                      return 86;
+                                                         xx101110xx1xxxxx001011xxxxxxxxxx
+                                                         uqsub.  */
+                                                      return 318;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx000110xxxxx1xx0111x11x
-                                                         rsubhn2.  */
-                                                      return 87;
+                                                         xx101110xx1xxxxx011011xxxxxxxxxx
+                                                         umin.  */
+                                                      return 326;
                                                     }
                                                 }
                                             }
                                           else
                                             {
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 22) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx000111xxxxx10x0111xx0x
-                                                         pmull.  */
-                                                      return 70;
+                                                      if (((word >> 22) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx101110001xxxxx000111xxxxxxxxxx
+                                                                 eor.  */
+                                                              return 350;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx101110101xxxxx000111xxxxxxxxxx
+                                                                 bit.  */
+                                                              return 362;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx101110011xxxxx000111xxxxxxxxxx
+                                                                 bsl.  */
+                                                              return 351;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx101110111xxxxx000111xxxxxxxxxx
+                                                                 bif.  */
+                                                              return 363;
+                                                            }
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx000111xxxxx10x0111xx1x
-                                                         pmull2.  */
-                                                      return 72;
+                                                         xx101110xx1xxxxx010111xxxxxxxxxx
+                                                         uqrshl.  */
+                                                      return 324;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx000111xxxxx11x0111xx0x
-                                                         pmull.  */
-                                                      return 71;
+                                                         xx101110xx1xxxxx001111xxxxxxxxxx
+                                                         cmhs.  */
+                                                      return 320;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx000111xxxxx11x0111xx1x
-                                                         pmull2.  */
-                                                      return 73;
+                                                         xx101110xx1xxxxx011111xxxxxxxxxx
+                                                         uaba.  */
+                                                      return 328;
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
-                              else
+                            }
+                          else
+                            {
+                              if (((word >> 10) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 28) & 0x1) == 0)
+                                  if (((word >> 11) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
+                                      if (((word >> 12) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 14) & 0x1) == 0)
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
@@ -13142,17 +14572,80 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001000xxxxx1xx0111000x
-                                                             saddw.  */
-                                                          return 44;
+                                                             x0001110xx1xxxxx100000xxxxxxxxxx
+                                                             smlal.  */
+                                                          return 58;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx100000xxxxxxxxxx
+                                                                 smlal2.  */
+                                                              return 59;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 11001110xx1xxxxx100000xxxxxxxxxx
+                                                                 sha512h.  */
+                                                              return 1990;
+                                                            }
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0101110xx1xxxxx100000xxxxxxxxxx
+                                                             umlal.  */
+                                                          return 90;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001000xxxxx1xx0111001x
-                                                             saddw2.  */
-                                                          return 45;
+                                                             x1101110xx1xxxxx100000xxxxxxxxxx
+                                                             umlal2.  */
+                                                          return 91;
+                                                        }
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 29) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0001110xx1xxxxx110000xxxxxxxxxx
+                                                             smull.  */
+                                                          return 66;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 01001110xx1xxxxx110000xxxxxxxxxx
+                                                                 smull2.  */
+                                                              return 67;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 11001110xx1xxxxx110000xxxxxxxxxx
+                                                                 sm3partw1.  */
+                                                              return 2003;
+                                                            }
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -13161,43 +14654,24 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001000xxxxx1xx0111010x
-                                                             uaddw.  */
-                                                          return 76;
+                                                             x0101110xx1xxxxx110000xxxxxxxxxx
+                                                             umull.  */
+                                                          return 94;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001000xxxxx1xx0111011x
-                                                             uaddw2.  */
-                                                          return 77;
+                                                             x1101110xx1xxxxx110000xxxxxxxxxx
+                                                             umull2.  */
+                                                          return 95;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
-                                              else
-                                                {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx001001xxxxx1xx01110x0x
-                                                         sqdmlal.  */
-                                                      return 60;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx001001xxxxx1xx01110x1x
-                                                         sqdmlal2.  */
-                                                      return 61;
-                                                    }
-                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
@@ -13205,17 +14679,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001010xxxxx1xx0111000x
-                                                             sabal.  */
-                                                          return 52;
+                                                             x0001110xx1xxxxx101000xxxxxxxxxx
+                                                             smlsl.  */
+                                                          return 62;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001010xxxxx1xx0111001x
-                                                             sabal2.  */
-                                                          return 53;
+                                                             x1001110xx1xxxxx101000xxxxxxxxxx
+                                                             smlsl2.  */
+                                                          return 63;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -13224,64 +14698,39 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001010xxxxx1xx0111010x
-                                                             uabal.  */
-                                                          return 84;
+                                                             x0101110xx1xxxxx101000xxxxxxxxxx
+                                                             umlsl.  */
+                                                          return 92;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001010xxxxx1xx0111011x
-                                                             uabal2.  */
-                                                          return 85;
+                                                             x1101110xx1xxxxx101000xxxxxxxxxx
+                                                             umlsl2.  */
+                                                          return 93;
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx001011xxxxx1xx01110x0x
-                                                         sqdmull.  */
-                                                      return 68;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx001011xxxxx1xx01110x1x
-                                                         sqdmull2.  */
-                                                      return 69;
-                                                    }
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 14) & 0x1) == 0)
-                                            {
-                                              if (((word >> 15) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 22) & 0x1) == 0)
                                                     {
                                                       if (((word >> 30) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                     {
                                                       if (((word >> 30) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001100xxxxx1xx0111000x
-                                                             ssubw.  */
-                                                          return 48;
+                                                             x0x01110x01xxxxx111000xxxxxxxxxx
+                                                             pmull.  */
+                                                          return 70;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001100xxxxx1xx0111001x
-                                                             ssubw2.  */
-                                                          return 49;
+                                                             x1x01110x01xxxxx111000xxxxxxxxxx
+                                                             pmull2.  */
+                                                          return 72;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -13290,59 +14739,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001100xxxxx1xx0111010x
-                                                             usubw.  */
-                                                          return 80;
+                                                             x0x01110x11xxxxx111000xxxxxxxxxx
+                                                             pmull.  */
+                                                          return 71;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx001100xxxxx1xx0111011x
-                                                             usubw2.  */
-                                                          return 81;
+                                                             x1x01110x11xxxxx111000xxxxxxxxxx
+                                                             pmull2.  */
+                                                          return 73;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
-                                              else
-                                                {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx001101xxxxx1xx01110x0x
-                                                         sqdmlsl.  */
-                                                      return 64;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx001101xxxxx1xx01110x1x
-                                                         sqdmlsl2.  */
-                                                      return 65;
-                                                    }
-                                                }
                                             }
                                             }
-                                          else
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 29) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                   if (((word >> 30) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                 {
                                                   if (((word >> 30) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00111xxxxxx1xx0111000x
-                                                         sabdl.  */
-                                                      return 56;
+                                                         x0x01110xx1xxxxx100100xxxxxxxxxx
+                                                         sqdmlal.  */
+                                                      return 60;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00111xxxxxx1xx0111001x
-                                                         sabdl2.  */
-                                                      return 57;
+                                                         x1x01110xx1xxxxx100100xxxxxxxxxx
+                                                         sqdmlal2.  */
+                                                      return 61;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -13351,367 +14784,515 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00111xxxxxx1xx0111010x
-                                                         uabdl.  */
-                                                      return 88;
+                                                         x0x01110xx1xxxxx110100xxxxxxxxxx
+                                                         sqdmull.  */
+                                                      return 68;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx00111xxxxxx1xx0111011x
-                                                         uabdl2.  */
-                                                      return 89;
+                                                         x1x01110xx1xxxxx110100xxxxxxxxxx
+                                                         sqdmull2.  */
+                                                      return 69;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 30) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx001xxxxxxxx1xx01111x0x
-                                             fmov.  */
-                                          return 832;
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 13) & 0x1) == 0)
+                                          else
                                             {
                                             {
-                                              if (((word >> 14) & 0x1) == 0)
+                                              if (((word >> 30) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00100xxxxxx1xx01111x1x
-                                                     sqdmlal.  */
-                                                  return 413;
+                                                     x0x01110xx1xxxxx1x1100xxxxxxxxxx
+                                                     sqdmlsl.  */
+                                                  return 64;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx00101xxxxxx1xx01111x1x
-                                                     sqdmull.  */
-                                                  return 415;
+                                                     x1x01110xx1xxxxx1x1100xxxxxxxxxx
+                                                     sqdmlsl2.  */
+                                                  return 65;
                                                 }
                                             }
                                                 }
                                             }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0011xxxxxxx1xx01111x1x
-                                                 sqdmlsl.  */
-                                              return 414;
-                                            }
                                         }
                                     }
                                         }
                                     }
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 12) & 0x1) == 0)
-                                {
-                                  if (((word >> 13) & 0x1) == 0)
+                                  else
                                     {
                                     {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      if (((word >> 12) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010000xxxxx1xx011100xx
-                                                         rev64.  */
-                                                      return 155;
+                                                      if (((word >> 31) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 16) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 0x001110xx1xxxx0100010xxxxxxxxxx
+                                                                 cmgt.  */
+                                                              return 164;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 19) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         0x0011100x1x0xx1100010xxxxxxxxxx
+                                                                         frintn.  */
+                                                                      return 176;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         0x0011101x1x0xx1100010xxxxxxxxxx
+                                                                         frintp.  */
+                                                                      return 196;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 23) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         0x0011100x1x1xx1100010xxxxxxxxxx
+                                                                         frintn.  */
+                                                                      return 177;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         0x0011101x1x1xx1100010xxxxxxxxxx
+                                                                         frintp.  */
+                                                                      return 197;
+                                                                    }
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             1x001110xx1xxxxx100010xxxxxxxxxx
+                                                             sha512su1.  */
+                                                          return 1993;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010000xxxxx1xx011101xx
-                                                         rev32.  */
-                                                      return 206;
+                                                      if (((word >> 16) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110xx1xxxx0100010xxxxxxxxxx
+                                                             cmge.  */
+                                                          return 213;
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx101110xx1x0xx1100010xxxxxxxxxx
+                                                                 frinta.  */
+                                                              return 224;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx101110xx1x1xx1100010xxxxxxxxxx
+                                                                 frinta.  */
+                                                              return 225;
+                                                            }
+                                                        }
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010000xxxxx1xx01111x0x
-                                                         fmul.  */
-                                                      return 806;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010000xxxxx1xx01111x1x
-                                                         sha1h.  */
-                                                      return 654;
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 28) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 16) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0100010xxxx1xx011100xx
-                                                             cmgt.  */
-                                                          return 163;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0100010xxxx1xx011101xx
-                                                             cmge.  */
-                                                          return 212;
+                                                          if (((word >> 31) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 16) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     0x0011100x1xxxx0110010xxxxxxxxxx
+                                                                     fmaxnmv.  */
+                                                                  return 35;
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 19) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         0x0011100x1x0xx1110010xxxxxxxxxx
+                                                                         fcvtas.  */
+                                                                      return 184;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         0x0011100x1x1xx1110010xxxxxxxxxx
+                                                                         fcvtas.  */
+                                                                      return 185;
+                                                                    }
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 1x0011100x1xxxxx110010xxxxxxxxxx
+                                                                 sm4ekey.  */
+                                                              return 2006;
+                                                            }
                                                         }
                                                         }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 19) & 0x1) == 0)
+                                                      else
                                                         {
                                                         {
-                                                          if (((word >> 23) & 0x1) == 0)
+                                                          if (((word >> 16) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx1011100x1xxxx0110010xxxxxxxxxx
+                                                                 fmaxnmv.  */
+                                                              return 34;
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 19) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100011xx0x1x0011100xx
-                                                                     frintn.  */
-                                                                  return 175;
+                                                                     xx1011100x1x0xx1110010xxxxxxxxxx
+                                                                     fcvtau.  */
+                                                                  return 232;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100011xx0x1x0011101xx
-                                                                     frinta.  */
-                                                                  return 223;
+                                                                     xx1011100x1x1xx1110010xxxxxxxxxx
+                                                                     fcvtau.  */
+                                                                  return 233;
                                                                 }
                                                             }
                                                                 }
                                                             }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100011xx0x1x101110xxx
-                                                                 frintp.  */
-                                                              return 195;
-                                                            }
                                                         }
                                                         }
-                                                      else
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 16) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 23) & 0x1) == 0)
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0011101x100xx0110010xxxxxxxxxx
+                                                                         fcmgt.  */
+                                                                      return 188;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1011101x100xx0110010xxxxxxxxxx
+                                                                         fcmge.  */
+                                                                      return 239;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0011101x110xx0110010xxxxxxxxxx
+                                                                         fminnmv.  */
+                                                                      return 39;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1011101x110xx0110010xxxxxxxxxx
+                                                                         fminnmv.  */
+                                                                      return 38;
+                                                                    }
+                                                                }
+                                                            }
+                                                          else
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100011xx1x1x0011100xx
-                                                                     frintn.  */
-                                                                  return 176;
+                                                                     xx0011101x1x1xx0110010xxxxxxxxxx
+                                                                     fcmgt.  */
+                                                                  return 189;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100011xx1x1x0011101xx
-                                                                     frinta.  */
-                                                                  return 224;
+                                                                     xx1011101x1x1xx0110010xxxxxxxxxx
+                                                                     fcmge.  */
+                                                                  return 240;
                                                                 }
                                                             }
                                                                 }
                                                             }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 29) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx0011101x1xxxx1110010xxxxxxxxxx
+                                                                 urecpe.  */
+                                                              return 204;
+                                                            }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100011xx1x1x101110xxx
-                                                                 frintp.  */
-                                                              return 196;
+                                                                 xx1011101x1xxxx1110010xxxxxxxxxx
+                                                                 ursqrte.  */
+                                                              return 251;
                                                             }
                                                         }
                                                     }
                                                 }
                                                             }
                                                         }
                                                     }
                                                 }
-                                              else
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 16) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
+                                                      if (((word >> 20) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx010001xxxxx1xx0111100x
-                                                             fnmul.  */
-                                                          return 822;
+                                                             xxx01110xx10xxx0101010xxxxxxxxxx
+                                                             cmlt.  */
+                                                          return 166;
                                                         }
                                                       else
                                                         }
                                                       else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx010001xxxxx1xx0111101x
-                                                             cmgt.  */
-                                                          return 473;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010001xxxxx1xx011111xx
-                                                         cmge.  */
-                                                      return 502;
-                                                    }
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              if (((word >> 28) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 16) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                           if (((word >> 29) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                         {
                                                           if (((word >> 29) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100100xx0x1xx011100xx
-                                                                 cls.  */
-                                                              return 159;
+                                                                 xx001110xx11xxx0101010xxxxxxxxxx
+                                                                 smaxv.  */
+                                                              return 28;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100100xx0x1xx011101xx
-                                                                 clz.  */
-                                                              return 209;
+                                                                 xx101110xx11xxx0101010xxxxxxxxxx
+                                                                 umaxv.  */
+                                                              return 32;
                                                             }
                                                         }
                                                             }
                                                         }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0100100xx1x1xx01110xxx
-                                                             aese.  */
-                                                          return 650;
-                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 30) & 0x1) == 0)
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100101xxxx1xx0111000x
-                                                                 sqxtn.  */
-                                                              return 169;
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0011100x100xx1101010xxxxxxxxxx
+                                                                         fcvtns.  */
+                                                                      return 180;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1011100x100xx1101010xxxxxxxxxx
+                                                                         fcvtnu.  */
+                                                                      return 228;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0011101x100xx1101010xxxxxxxxxx
+                                                                         fcvtps.  */
+                                                                      return 200;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1011101x100xx1101010xxxxxxxxxx
+                                                                         fcvtpu.  */
+                                                                      return 247;
+                                                                    }
+                                                                }
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100101xxxx1xx0111001x
-                                                                 sqxtn2.  */
-                                                              return 170;
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx001110xx110xx1101010xxxxxxxxxx
+                                                                     sminv.  */
+                                                                  return 29;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx101110xx110xx1101010xxxxxxxxxx
+                                                                     uminv.  */
+                                                                  return 33;
+                                                                }
                                                             }
                                                         }
                                                       else
                                                         {
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 30) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100101xxxx1xx0111010x
-                                                                 uqxtn.  */
-                                                              return 219;
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0011100x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtns.  */
+                                                                  return 181;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1011100x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtnu.  */
+                                                                  return 229;
+                                                                }
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100101xxxx1xx0111011x
-                                                                 uqxtn2.  */
-                                                              return 220;
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0011101x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtps.  */
+                                                                  return 201;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1011101x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtpu.  */
+                                                                  return 248;
+                                                                }
                                                             }
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
                                                             }
                                                         }
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 19) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx010010xxxxx1xx0111100x
-                                                             fmax.  */
-                                                          return 814;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx010010xxxxx1xx0111101x
-                                                             sqxtn.  */
-                                                          return 477;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx01110xx1x0xxx111010xxxxxxxxxx
+                                                         fcmlt.  */
+                                                      return 192;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx010010xxxxx1xx011111xx
-                                                         uqxtn.  */
-                                                      return 506;
+                                                         xxx01110xx1x1xxx111010xxxxxxxxxx
+                                                         fcmlt.  */
+                                                      return 193;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
-                                          else
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 16) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 29) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx001110xx1xxxx0100110xxxxxxxxxx
+                                                             cmeq.  */
+                                                          return 165;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx101110xx1xxxx0100110xxxxxxxxxx
+                                                             cmle.  */
+                                                          return 214;
+                                                        }
+                                                    }
+                                                  else
                                                     {
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100110xx001xx011100xx
-                                                                     fcmgt.  */
-                                                                  return 187;
+                                                                     xx0011100x1x0xx1100110xxxxxxxxxx
+                                                                     frintm.  */
+                                                                  return 178;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100110xx001xx011101xx
-                                                                     fcmge.  */
-                                                                  return 238;
+                                                                     xx1011100x1x0xx1100110xxxxxxxxxx
+                                                                     frintx.  */
+                                                                  return 226;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -13720,17 +15301,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100110xx001xx011110xx
-                                                                     fcmgt.  */
-                                                                  return 486;
+                                                                     xx0011101x1x0xx1100110xxxxxxxxxx
+                                                                     frintz.  */
+                                                                  return 198;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100110xx001xx011111xx
-                                                                     fcmge.  */
-                                                                  return 516;
+                                                                     xx1011101x1x0xx1100110xxxxxxxxxx
+                                                                     frinti.  */
+                                                                  return 245;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
@@ -13738,107 +15319,66 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           if (((word >> 23) & 0x1) == 0)
                                                             {
                                                         {
                                                           if (((word >> 23) & 0x1) == 0)
                                                             {
-                                                              if (((word >> 28) & 0x1) == 0)
+                                                              if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x0011100xx
-                                                                         fmaxnmv.  */
-                                                                      return 35;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x0011101xx
-                                                                         fmaxnmv.  */
-                                                                      return 34;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0011100x1x1xx1100110xxxxxxxxxx
+                                                                     frintm.  */
+                                                                  return 179;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x0011110xx
-                                                                         fmaxnmp.  */
-                                                                      return 530;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x0011111xx
-                                                                         fmaxnmp.  */
-                                                                      return 529;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1011100x1x1xx1100110xxxxxxxxxx
+                                                                     frintx.  */
+                                                                  return 227;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 28) & 0x1) == 0)
+                                                              if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x1011100xx
-                                                                         fminnmv.  */
-                                                                      return 39;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x1011101xx
-                                                                         fminnmv.  */
-                                                                      return 38;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0011101x1x1xx1100110xxxxxxxxxx
+                                                                     frintz.  */
+                                                                  return 199;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x1011110xx
-                                                                         fminnmp.  */
-                                                                      return 536;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0100110xx011x1011111xx
-                                                                         fminnmp.  */
-                                                                      return 535;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1011101x1x1xx1100110xxxxxxxxxx
+                                                                     frinti.  */
+                                                                  return 246;
                                                                 }
                                                             }
                                                         }
                                                     }
                                                                 }
                                                             }
                                                         }
                                                     }
-                                                  else
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 16) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 28) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                           if (((word >> 29) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                         {
                                                           if (((word >> 29) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100110xx1x1xx011100xx
-                                                                 fcmgt.  */
-                                                              return 188;
+                                                                 xx001110xx1x0xx0110110xxxxxxxxxx
+                                                                 fcmeq.  */
+                                                              return 190;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100110xx1x1xx011101xx
-                                                                 fcmge.  */
-                                                              return 239;
+                                                                 xx101110xx1x0xx0110110xxxxxxxxxx
+                                                                 fcmle.  */
+                                                              return 241;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -13847,44 +15387,41 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100110xx1x1xx011110xx
-                                                                 fcmgt.  */
-                                                              return 487;
+                                                                 xx001110xx1x1xx0110110xxxxxxxxxx
+                                                                 fcmeq.  */
+                                                              return 191;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100110xx1x1xx011111xx
-                                                                 fcmge.  */
-                                                              return 517;
+                                                                 xx101110xx1x1xx0110110xxxxxxxxxx
+                                                                 fcmle.  */
+                                                              return 242;
                                                             }
                                                         }
                                                     }
                                                             }
                                                         }
                                                     }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  else
                                                     {
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100111xx0x1x0011100xx
-                                                                     fcvtas.  */
-                                                                  return 183;
+                                                                     xx0011100x1x0xx1110110xxxxxxxxxx
+                                                                     scvtf.  */
+                                                                  return 186;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100111xx0x1x0011101xx
-                                                                     fcvtau.  */
-                                                                  return 231;
+                                                                     xx1011100x1x0xx1110110xxxxxxxxxx
+                                                                     ucvtf.  */
+                                                                  return 234;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -13893,294 +15430,110 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100111xx0x1x0011110xx
-                                                                     fcvtas.  */
-                                                                  return 482;
+                                                                     xx0011101x1x0xx1110110xxxxxxxxxx
+                                                                     frecpe.  */
+                                                                  return 205;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0100111xx0x1x0011111xx
-                                                                     fcvtau.  */
-                                                                  return 512;
+                                                                     xx1011101x1x0xx1110110xxxxxxxxxx
+                                                                     frsqrte.  */
+                                                                  return 252;
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
                                                                 }
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100111xx0x1x10111x0xx
-                                                                 urecpe.  */
-                                                              return 203;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100111xx0x1x10111x1xx
-                                                                 ursqrte.  */
-                                                              return 250;
-                                                            }
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 28) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100111xx1x1xx011100xx
-                                                                 fcvtas.  */
-                                                              return 184;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100111xx1x1xx011101xx
-                                                                 fcvtau.  */
-                                                              return 232;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100111xx1x1xx011110xx
-                                                                 fcvtas.  */
-                                                              return 483;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0100111xx1x1xx011111xx
-                                                                 fcvtau.  */
-                                                              return 513;
-                                                            }
-                                                        }
-                                                    }
-                                                }
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              if (((word >> 28) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 16) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0101000xxxx1xx011100xx
-                                                             saddlp.  */
-                                                          return 157;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0101000xxxx1xx011101xx
-                                                             uaddlp.  */
-                                                          return 207;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 30) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101001xxxx1xx0111000x
-                                                                 xtn.  */
-                                                              return 167;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101001xxxx1xx0111001x
-                                                                 xtn2.  */
-                                                              return 168;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 30) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101001xxxx1xx0111010x
-                                                                 sqxtun.  */
-                                                              return 215;
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0011100x1x1xx1110110xxxxxxxxxx
+                                                                     scvtf.  */
+                                                                  return 187;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1011100x1x1xx1110110xxxxxxxxxx
+                                                                     ucvtf.  */
+                                                                  return 235;
+                                                                }
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101001xxxx1xx0111011x
-                                                                 sqxtun2.  */
-                                                              return 216;
-                                                            }
-                                                        }
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx010100xxxxx1xx0111100x
-                                                             fadd.  */
-                                                          return 810;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx010100xxxxx1xx0111101x
-                                                             sha256su0.  */
-                                                          return 656;
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0011101x1x1xx1110110xxxxxxxxxx
+                                                                     frecpe.  */
+                                                                  return 206;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1011101x1x1xx1110110xxxxxxxxxx
+                                                                     frsqrte.  */
+                                                                  return 253;
+                                                                }
+                                                            }
                                                         }
                                                     }
                                                         }
                                                     }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010100xxxxx1xx011111xx
-                                                         sqxtun.  */
-                                                      return 505;
-                                                    }
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 20) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 28) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0101010xxx01xx01110xxx
-                                                             cmlt.  */
-                                                          return 165;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0101010xxx01xx01111xxx
-                                                             cmlt.  */
-                                                          return 475;
-                                                        }
-                                                    }
-                                                  else
+                                                  if (((word >> 16) & 0x1) == 0)
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0101010xxx11xx0111x0xx
-                                                             smaxv.  */
-                                                          return 28;
+                                                             xx001110xx1xxxx0101110xxxxxxxxxx
+                                                             abs.  */
+                                                          return 167;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0101010xxx11xx0111x1xx
-                                                             umaxv.  */
-                                                          return 32;
+                                                             xx101110xx1xxxx0101110xxxxxxxxxx
+                                                             neg.  */
+                                                          return 215;
                                                         }
                                                     }
                                                         }
                                                     }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  else
                                                     {
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 23) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 28) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x0011100xx
-                                                                         fcvtns.  */
-                                                                      return 179;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x0011101xx
-                                                                         fcvtnu.  */
-                                                                      return 227;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x0011110xx
-                                                                         fcvtns.  */
-                                                                      return 478;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x0011111xx
-                                                                         fcvtnu.  */
-                                                                      return 508;
-                                                                    }
-                                                                }
-                                                            }
-                                                          else
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 28) & 0x1) == 0)
+                                                              if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                   if (((word >> 29) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                 {
                                                                   if (((word >> 29) & 0x1) == 0)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x1011100xx
-                                                                         fcvtps.  */
-                                                                      return 199;
+                                                                         xx0011100x100xx1101110xxxxxxxxxx
+                                                                         fcvtms.  */
+                                                                      return 182;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x1011101xx
-                                                                         fcvtpu.  */
-                                                                      return 246;
+                                                                         xx1011100x100xx1101110xxxxxxxxxx
+                                                                         fcvtmu.  */
+                                                                      return 230;
                                                                     }
                                                                 }
                                                               else
                                                                     }
                                                                 }
                                                               else
@@ -14189,62 +15542,48 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x1011110xx
-                                                                         fcvtps.  */
-                                                                      return 492;
+                                                                         xx0011101x100xx1101110xxxxxxxxxx
+                                                                         fcvtzs.  */
+                                                                      return 202;
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
                                                                     }
                                                                   else
                                                                     {
                                                                       /* 33222222222211111111110000000000
                                                                          10987654321098765432109876543210
-                                                                         xxxxxxxxxx0101011xx001x1011111xx
-                                                                         fcvtpu.  */
-                                                                      return 520;
+                                                                         xx1011101x100xx1101110xxxxxxxxxx
+                                                                         fcvtzu.  */
+                                                                      return 249;
                                                                     }
                                                                 }
                                                             }
                                                                     }
                                                                 }
                                                             }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101011xx011xx0111x0xx
-                                                                 sminv.  */
-                                                              return 29;
-                                                            }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101011xx011xx0111x1xx
-                                                                 uminv.  */
-                                                              return 33;
+                                                                 xxx01110xx110xx1101110xxxxxxxxxx
+                                                                 addv.  */
+                                                              return 30;
                                                             }
                                                         }
                                                             }
                                                         }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      else
                                                         {
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 23) & 0x1) == 0)
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x0011100xx
-                                                                     fcvtns.  */
-                                                                  return 180;
+                                                                     xx0011100x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtms.  */
+                                                                  return 183;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x0011101xx
-                                                                     fcvtnu.  */
-                                                                  return 228;
+                                                                     xx1011100x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtmu.  */
+                                                                  return 231;
                                                                 }
                                                             }
                                                           else
                                                                 }
                                                             }
                                                           else
@@ -14253,264 +15592,319 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x0011110xx
-                                                                     fcvtns.  */
-                                                                  return 479;
+                                                                     xx0011101x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtzs.  */
+                                                                  return 203;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x0011111xx
-                                                                     fcvtnu.  */
-                                                                  return 509;
+                                                                     xx1011101x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtzu.  */
+                                                                  return 250;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
-                                                      else
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 16) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 20) & 0x1) == 0)
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                             {
                                                               if (((word >> 29) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x1011100xx
-                                                                     fcvtps.  */
-                                                                  return 200;
+                                                                     xx001110xx100xx0111110xxxxxxxxxx
+                                                                     fabs.  */
+                                                                  return 194;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x1011101xx
-                                                                     fcvtpu.  */
-                                                                  return 247;
+                                                                     xx101110xx100xx0111110xxxxxxxxxx
+                                                                     fneg.  */
+                                                                  return 243;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
+                                                              if (((word >> 23) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x1011110xx
-                                                                     fcvtps.  */
-                                                                  return 493;
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0011100x110xx0111110xxxxxxxxxx
+                                                                         fmaxv.  */
+                                                                      return 37;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1011100x110xx0111110xxxxxxxxxx
+                                                                         fmaxv.  */
+                                                                      return 36;
+                                                                    }
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0101011xx1x1x1011111xx
-                                                                     fcvtpu.  */
-                                                                  return 521;
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0011101x110xx0111110xxxxxxxxxx
+                                                                         fminv.  */
+                                                                      return 41;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1011101x110xx0111110xxxxxxxxxx
+                                                                         fminv.  */
+                                                                      return 40;
+                                                                    }
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
-                                                    }
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              if (((word >> 28) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 16) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 19) & 0x1) == 0)
+                                                      else
                                                         {
                                                           if (((word >> 29) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                         {
                                                           if (((word >> 29) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101100xx0x1xx011100xx
-                                                                 sadalp.  */
-                                                              return 161;
+                                                                 xx001110xx1x1xx0111110xxxxxxxxxx
+                                                                 fabs.  */
+                                                              return 195;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101100xx0x1xx011101xx
-                                                                 uadalp.  */
-                                                              return 210;
+                                                                 xx101110xx1x1xx0111110xxxxxxxxxx
+                                                                 fneg.  */
+                                                              return 244;
                                                             }
                                                         }
                                                             }
                                                         }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxx01110xx1x0xx1111110xxxxxxxxxx
+                                                             fsqrt.  */
+                                                          return 254;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxx01110xx1x1xx1111110xxxxxxxxxx
+                                                             fsqrt.  */
+                                                          return 255;
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 11) & 0x1) == 0)
+                                    {
+                                      if (((word >> 12) & 0x1) == 0)
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 29) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 31) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx100001xxxxxxxxxx
+                                                             add.  */
+                                                          return 277;
+                                                        }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0101100xx1x1xx01110xxx
-                                                             aesmc.  */
-                                                          return 652;
+                                                             1x001110xx1xxxxx100001xxxxxxxxxx
+                                                             sha512h2.  */
+                                                          return 1991;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx100001xxxxxxxxxx
+                                                         sub.  */
+                                                      return 329;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
-                                                          if (((word >> 30) & 0x1) == 0)
+                                                          if (((word >> 31) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101101xxxx1xx0111000x
-                                                                 fcvtn.  */
-                                                              return 171;
+                                                                 0x0011100x1xxxxx110001xxxxxxxxxx
+                                                                 fmaxnm.  */
+                                                              return 285;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101101xxxx1xx0111001x
-                                                                 fcvtn2.  */
-                                                              return 172;
+                                                                 1x0011100x1xxxxx110001xxxxxxxxxx
+                                                                 sm3partw2.  */
+                                                              return 2004;
                                                             }
                                                         }
                                                       else
                                                         {
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 30) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101101xxxx1xx0111010x
-                                                                 fcvtxn.  */
-                                                              return 221;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0101101xxxx1xx0111011x
-                                                                 fcvtxn2.  */
-                                                              return 222;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx1011100x1xxxxx110001xxxxxxxxxx
+                                                             fmaxnmp.  */
+                                                          return 336;
                                                         }
                                                     }
                                                         }
                                                     }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010110xxxxx1xx011110xx
-                                                         fmaxnm.  */
-                                                      return 818;
-                                                    }
                                                   else
                                                     {
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010110xxxxx1xx011111xx
-                                                         fcvtxn.  */
-                                                      return 507;
+                                                      if (((word >> 29) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx0011101x1xxxxx110001xxxxxxxxxx
+                                                             fminnm.  */
+                                                          return 301;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx1011101x1xxxxx110001xxxxxxxxxx
+                                                             fminnmp.  */
+                                                          return 352;
+                                                        }
                                                     }
                                                 }
                                             }
                                           else
                                             {
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 19) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 28) & 0x1) == 0)
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx010111xxx0x1xx01110xxx
-                                                         fcmlt.  */
-                                                      return 191;
+                                                         xx001110xx1xxxxx101001xxxxxxxxxx
+                                                         smaxp.  */
+                                                      return 281;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx010111xxx0x1xx01111xxx
-                                                         fcmlt.  */
-                                                      return 490;
+                                                         xx101110xx1xxxxx101001xxxxxxxxxx
+                                                         umaxp.  */
+                                                      return 333;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 28) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx010111xxx1x1xx01110xxx
-                                                         fcmlt.  */
-                                                      return 192;
+                                                      if (((word >> 29) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx0011100x1xxxxx111001xxxxxxxxxx
+                                                             fcmeq.  */
+                                                          return 293;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx1011100x1xxxxx111001xxxxxxxxxx
+                                                             fcmge.  */
+                                                          return 342;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx010111xxx1x1xx01111xxx
-                                                         fcmlt.  */
-                                                      return 491;
+                                                         xxx011101x1xxxxx111001xxxxxxxxxx
+                                                         fcmgt.  */
+                                                      return 356;
                                                     }
                                                 }
                                             }
                                         }
                                                     }
                                                 }
                                             }
                                         }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 13) & 0x1) == 0)
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      else
                                         {
                                         {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 28) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx011000xxxxx1xx01110xxx
-                                                     rev16.  */
-                                                  return 156;
-                                                }
-                                              else
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 30) & 0x1) == 0)
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx011000xxxxx1xx01111x0x
-                                                         fdiv.  */
-                                                      return 808;
+                                                         xx001110xx1xxxxx100101xxxxxxxxxx
+                                                         mla.  */
+                                                      return 279;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx011000xxxxx1xx01111x1x
-                                                         sha1su1.  */
-                                                      return 655;
+                                                         xx101110xx1xxxxx100101xxxxxxxxxx
+                                                         mls.  */
+                                                      return 331;
                                                     }
                                                 }
                                                     }
                                                 }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              else
                                                 {
                                                 {
-                                                  if (((word >> 28) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0110010xxxx1xx011100xx
-                                                             cmeq.  */
-                                                          return 164;
+                                                             xx0011100x1xxxxx110101xxxxxxxxxx
+                                                             fadd.  */
+                                                          return 289;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0110010xxxx1xx011101xx
-                                                             cmle.  */
-                                                          return 213;
+                                                             xx1011100x1xxxxx110101xxxxxxxxxx
+                                                             faddp.  */
+                                                          return 338;
                                                         }
                                                     }
                                                   else
                                                         }
                                                     }
                                                   else
@@ -14519,1161 +15913,680 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0110010xxxx1xx011110xx
-                                                             cmeq.  */
-                                                          return 474;
+                                                             xx0011101x1xxxxx110101xxxxxxxxxx
+                                                             fsub.  */
+                                                          return 305;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0110010xxxx1xx011111xx
-                                                             cmle.  */
-                                                          return 503;
+                                                             xx1011101x1xxxxx110101xxxxxxxxxx
+                                                             fabd.  */
+                                                          return 354;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
-                                              else
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx0x1x00111x0xx
-                                                                 frintm.  */
-                                                              return 177;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx0x1x00111x1xx
-                                                                 frintx.  */
-                                                              return 225;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx0x1x10111x0xx
-                                                                 frintz.  */
-                                                              return 197;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx0x1x10111x1xx
-                                                                 frinti.  */
-                                                              return 244;
-                                                            }
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx001110xx1xxxxx101101xxxxxxxxxx
+                                                         sqdmulh.  */
+                                                      return 283;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx1x1x00111x0xx
-                                                                 frintm.  */
-                                                              return 178;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx1x1x00111x1xx
-                                                                 frintx.  */
-                                                              return 226;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx1x1x10111x0xx
-                                                                 frintz.  */
-                                                              return 198;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110011xx1x1x10111x1xx
-                                                                 frinti.  */
-                                                              return 245;
-                                                            }
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx101101xxxxxxxxxx
+                                                         sqrdmulh.  */
+                                                      return 335;
                                                     }
                                                 }
                                                     }
                                                 }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              else
                                                 {
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx011010xxx0x1xx011100xx
-                                                             cnt.  */
-                                                          return 160;
+                                                             xx0011100x1xxxxx111101xxxxxxxxxx
+                                                             fmax.  */
+                                                          return 295;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 22) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx011010xxx0x10x011101xx
-                                                                 not.  */
-                                                              return 235;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx011010xxx0x11x011101xx
-                                                                 rbit.  */
-                                                              return 237;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx1011100x1xxxxx111101xxxxxxxxxx
+                                                             fmaxp.  */
+                                                          return 346;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx011010xxx1x1xx01110xxx
-                                                         aesd.  */
-                                                      return 651;
+                                                      if (((word >> 29) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx0011101x1xxxxx111101xxxxxxxxxx
+                                                             fmin.  */
+                                                          return 307;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx1011101x1xxxxx111101xxxxxxxxxx
+                                                             fminp.  */
+                                                          return 360;
+                                                        }
                                                     }
                                                 }
                                                     }
                                                 }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx011010xxxxx1xx01111xxx
-                                                     fmin.  */
-                                                  return 816;
-                                                }
                                             }
                                             }
-                                          else
+                                        }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 12) & 0x1) == 0)
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      if (((word >> 31) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110110xx001xx011100xx
-                                                                     fcmeq.  */
-                                                                  return 189;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110110xx001xx011101xx
-                                                                     fcmle.  */
-                                                                  return 240;
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110110xx001xx011110xx
-                                                                     fcmeq.  */
-                                                                  return 488;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110110xx001xx011111xx
-                                                                     fcmle.  */
-                                                                  return 518;
-                                                                }
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             0x001110xx1xxxxx100011xxxxxxxxxx
+                                                             cmtst.  */
+                                                          return 278;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110110xx011xx0111x0xx
-                                                                 faddp.  */
-                                                              return 532;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110110xx011xx0111x1xx
-                                                                 faddp.  */
-                                                              return 531;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             1x001110xx1xxxxx100011xxxxxxxxxx
+                                                             rax1.  */
+                                                          return 1995;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 28) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110110xx1x1xx011100xx
-                                                                 fcmeq.  */
-                                                              return 190;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110110xx1x1xx011101xx
-                                                                 fcmle.  */
-                                                              return 241;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110110xx1x1xx011110xx
-                                                                 fcmeq.  */
-                                                              return 489;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0110110xx1x1xx011111xx
-                                                                 fcmle.  */
-                                                              return 519;
-                                                            }
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx100011xxxxxxxxxx
+                                                         cmeq.  */
+                                                      return 330;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      if (((word >> 29) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x0011100xx
-                                                                     scvtf.  */
-                                                                  return 185;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x0011101xx
-                                                                     ucvtf.  */
-                                                                  return 233;
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x0011110xx
-                                                                     scvtf.  */
-                                                                  return 484;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x0011111xx
-                                                                     ucvtf.  */
-                                                                  return 514;
-                                                                }
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx0011100x1xxxxx110011xxxxxxxxxx
+                                                             fmla.  */
+                                                          return 287;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x1011100xx
-                                                                     frecpe.  */
-                                                                  return 204;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x1011101xx
-                                                                     frsqrte.  */
-                                                                  return 251;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x01011100x1xxxxx110011xxxxxxxxxx
+                                                                 fmlal2.  */
+                                                              return 2009;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x1011110xx
-                                                                     frecpe.  */
-                                                                  return 496;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx0x1x1011111xx
-                                                                     frsqrte.  */
-                                                                  return 524;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x11011100x1xxxxx110011xxxxxxxxxx
+                                                                 fmlal2.  */
+                                                              return 2013;
                                                             }
                                                         }
                                                     }
                                                   else
                                                     {
                                                             }
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      if (((word >> 29) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x0011100xx
-                                                                     scvtf.  */
-                                                                  return 186;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x0011101xx
-                                                                     ucvtf.  */
-                                                                  return 234;
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x0011110xx
-                                                                     scvtf.  */
-                                                                  return 485;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x0011111xx
-                                                                     ucvtf.  */
-                                                                  return 515;
-                                                                }
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx0011101x1xxxxx110011xxxxxxxxxx
+                                                             fmls.  */
+                                                          return 303;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x1011100xx
-                                                                     frecpe.  */
-                                                                  return 205;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x1011101xx
-                                                                     frsqrte.  */
-                                                                  return 252;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x01011101x1xxxxx110011xxxxxxxxxx
+                                                                 fmlsl2.  */
+                                                              return 2010;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x1011110xx
-                                                                     frecpe.  */
-                                                                  return 497;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0110111xx1x1x1011111xx
-                                                                     frsqrte.  */
-                                                                  return 525;
-                                                                }
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 x11011101x1xxxxx110011xxxxxxxxxx
+                                                                 fmlsl2.  */
+                                                              return 2014;
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
+                                          else
                                             {
                                             {
-                                              if (((word >> 28) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 16) & 0x1) == 0)
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 20) & 0x1) == 0)
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx001110xx1xxxxx101011xxxxxxxxxx
+                                                         sminp.  */
+                                                      return 282;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx101011xxxxxxxxxx
+                                                         uminp.  */
+                                                      return 334;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 23) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 29) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111000xxx01xx011100xx
-                                                                 suqadd.  */
-                                                              return 158;
+                                                                 x00011100x1xxxxx111011xxxxxxxxxx
+                                                                 fmlal.  */
+                                                              return 2007;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111000xxx01xx011101xx
-                                                                 usqadd.  */
-                                                              return 208;
+                                                                 x10011100x1xxxxx111011xxxxxxxxxx
+                                                                 fmlal.  */
+                                                              return 2011;
                                                             }
                                                         }
                                                       else
                                                         {
                                                             }
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx1011100x1xxxxx111011xxxxxxxxxx
+                                                             facge.  */
+                                                          return 344;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 29) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 30) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111000xxx11xx011100xx
-                                                                 saddlv.  */
-                                                              return 27;
+                                                                 x00011101x1xxxxx111011xxxxxxxxxx
+                                                                 fmlsl.  */
+                                                              return 2008;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111000xxx11xx011101xx
-                                                                 uaddlv.  */
-                                                              return 31;
+                                                                 x10011101x1xxxxx111011xxxxxxxxxx
+                                                                 fmlsl.  */
+                                                              return 2012;
                                                             }
                                                         }
                                                             }
                                                         }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111001xxxx1xx01110x0x
-                                                             shll.  */
-                                                          return 217;
-                                                        }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111001xxxx1xx01110x1x
-                                                             shll2.  */
-                                                          return 218;
+                                                             xx1011101x1xxxxx111011xxxxxxxxxx
+                                                             facgt.  */
+                                                          return 358;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 29) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx001110xx1xxxxx100111xxxxxxxxxx
+                                                         mul.  */
+                                                      return 280;
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx101110xx1xxxxx100111xxxxxxxxxx
+                                                         pmul.  */
+                                                      return 332;
+                                                    }
+                                                }
                                               else
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
                                               else
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx011100xxxxx1xx0111100x
-                                                             fsub.  */
-                                                          return 812;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx011100xxxxx1xx0111101x
-                                                             suqadd.  */
-                                                          return 471;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx001110xx1xxxxx110111xxxxxxxxxx
+                                                         fmulx.  */
+                                                      return 291;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx011100xxxxx1xx011111xx
-                                                         usqadd.  */
-                                                      return 500;
+                                                         xx101110xx1xxxxx110111xxxxxxxxxx
+                                                         fmul.  */
+                                                      return 340;
                                                     }
                                                 }
                                             }
                                           else
                                             {
                                                     }
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 16) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxx01110xx1xxxxx101111xxxxxxxxxx
+                                                     addp.  */
+                                                  return 284;
+                                                }
+                                              else
                                                 {
                                                 {
-                                                  if (((word >> 28) & 0x1) == 0)
+                                                  if (((word >> 23) & 0x1) == 0)
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                     {
                                                       if (((word >> 29) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111010xxxx1xx011100xx
-                                                             abs.  */
-                                                          return 166;
+                                                             xx0011100x1xxxxx111111xxxxxxxxxx
+                                                             frecps.  */
+                                                          return 297;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111010xxxx1xx011101xx
-                                                             neg.  */
-                                                          return 214;
+                                                             xx1011100x1xxxxx111111xxxxxxxxxx
+                                                             fdiv.  */
+                                                          return 348;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111010xxxx1xx011110xx
-                                                             abs.  */
-                                                          return 476;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111010xxxx1xx011111xx
-                                                             neg.  */
-                                                          return 504;
-                                                        }
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx011101x1xxxxx111111xxxxxxxxxx
+                                                         frsqrts.  */
+                                                      return 309;
                                                     }
                                                 }
                                                     }
                                                 }
-                                              else
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                      else
+                        {
+                          if (((word >> 10) & 0x1) == 0)
+                            {
+                              if (((word >> 11) & 0x1) == 0)
+                                {
+                                  if (((word >> 12) & 0x1) == 0)
+                                    {
+                                      if (((word >> 13) & 0x1) == 0)
+                                        {
+                                          if (((word >> 14) & 0x1) == 0)
+                                            {
+                                              if (((word >> 16) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 19) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 20) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 23) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 28) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x0011100xx
-                                                                         fcvtms.  */
-                                                                      return 181;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x0011101xx
-                                                                         fcvtmu.  */
-                                                                      return 229;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x0011110xx
-                                                                         fcvtms.  */
-                                                                      return 480;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x0011111xx
-                                                                         fcvtmu.  */
-                                                                      return 510;
-                                                                    }
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 28) & 0x1) == 0)
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x1011100xx
-                                                                         fcvtzs.  */
-                                                                      return 201;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x1011101xx
-                                                                         fcvtzu.  */
-                                                                      return 248;
-                                                                    }
-                                                                }
-                                                              else
-                                                                {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x1011110xx
-                                                                         fcvtzs.  */
-                                                                      return 494;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111011xx001x1011111xx
-                                                                         fcvtzu.  */
-                                                                      return 522;
-                                                                    }
-                                                                }
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 28) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111011xx011xx01110xxx
-                                                                 addv.  */
-                                                              return 30;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111011xx011xx01111xxx
-                                                                 addp.  */
-                                                              return 528;
-                                                            }
-                                                        }
-                                                    }
-                                                  else
+                                                  if (((word >> 17) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      if (((word >> 18) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 28) & 0x1) == 0)
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x0011100xx
-                                                                     fcvtms.  */
-                                                                  return 182;
+                                                                     xxx11110xx100000x00000xxxxxxxxxx
+                                                                     fcvtns.  */
+                                                                  return 756;
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 }
                                                               else
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x0011101xx
-                                                                     fcvtmu.  */
-                                                                  return 230;
-                                                                }
-                                                            }
-                                                          else
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x0011110xx
+                                                                     xxx11110xx110000x00000xxxxxxxxxx
                                                                      fcvtms.  */
                                                                      fcvtms.  */
-                                                                  return 481;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x0011111xx
-                                                                     fcvtmu.  */
-                                                                  return 511;
-                                                                }
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          if (((word >> 28) & 0x1) == 0)
-                                                            {
-                                                              if (((word >> 29) & 0x1) == 0)
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x1011100xx
-                                                                     fcvtzs.  */
-                                                                  return 202;
-                                                                }
-                                                              else
-                                                                {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x1011101xx
-                                                                     fcvtzu.  */
-                                                                  return 249;
+                                                                  return 776;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 29) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
                                                                 {
                                                                   /* 33222222222211111111110000000000
                                                                      10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x1011110xx
-                                                                     fcvtzs.  */
-                                                                  return 495;
+                                                                     xxx11110xx101000x00000xxxxxxxxxx
+                                                                     fcvtps.  */
+                                                                  return 772;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  /* 33222222222211111111110000000000
-                                                                     10987654321098765432109876543210
-                                                                     xxxxxxxxxx0111011xx1x1x1011111xx
-                                                                     fcvtzu.  */
-                                                                  return 523;
-                                                                }
-                                                            }
-                                                        }
-                                                    }
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 15) & 0x1) == 0)
-                                            {
-                                              if (((word >> 28) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 16) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 19) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111100xx0x1xx011100xx
-                                                                 sqabs.  */
-                                                              return 162;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111100xx0x1xx011101xx
-                                                                 sqneg.  */
-                                                              return 211;
-                                                            }
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111100xx1x1xx01110xxx
-                                                             aesimc.  */
-                                                          return 653;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 30) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111101xxxx1xx01110x0x
-                                                             fcvtl.  */
-                                                          return 173;
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx111000x00000xxxxxxxxxx
+                                                                     fcvtzs.  */
+                                                                  return 780;
+                                                                }
+                                                            }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111101xxxx1xx01110x1x
-                                                             fcvtl2.  */
-                                                          return 174;
+                                                             xxx11110xx1xx100x00000xxxxxxxxxx
+                                                             fcvtas.  */
+                                                          return 764;
                                                         }
                                                     }
                                                         }
                                                     }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  else
                                                     {
                                                     {
-                                                      if (((word >> 30) & 0x1) == 0)
+                                                      if (((word >> 18) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx011110xxxxx1xx0111100x
-                                                             fminnm.  */
-                                                          return 820;
+                                                             xxx11110xx1xx010x00000xxxxxxxxxx
+                                                             scvtf.  */
+                                                          return 760;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx011110xxxxx1xx0111101x
-                                                             sqabs.  */
-                                                          return 472;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx011110xxxxx1xx011111xx
-                                                         sqneg.  */
-                                                      return 501;
-                                                    }
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 16) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 19) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 20) & 0x1) == 0)
-                                                        {
-                                                          if (((word >> 29) & 0x1) == 0)
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111110xx001xx0111x0xx
-                                                                 fabs.  */
-                                                              return 193;
+                                                                 xxx11110xx1x0110x00000xxxxxxxxxx
+                                                                 fmov.  */
+                                                              return 768;
                                                             }
                                                           else
                                                             {
                                                             }
                                                           else
                                                             {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx0111110xx001xx0111x1xx
-                                                                 fneg.  */
-                                                              return 242;
+                                                              if (((word >> 20) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx101110x00000xxxxxxxxxx
+                                                                     fmov.  */
+                                                                  return 784;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx111110x00000xxxxxxxxxx
+                                                                     fjcvtzs.  */
+                                                                  return 786;
+                                                                }
                                                             }
                                                         }
                                                             }
                                                         }
-                                                      else
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 17) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 18) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 23) & 0x1) == 0)
+                                                          if (((word >> 19) & 0x1) == 0)
                                                             {
                                                             {
-                                                              if (((word >> 28) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x0011100xx
-                                                                         fmaxv.  */
-                                                                      return 37;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x0011101xx
-                                                                         fmaxv.  */
-                                                                      return 36;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx100001x00000xxxxxxxxxx
+                                                                     fcvtnu.  */
+                                                                  return 758;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x0011110xx
-                                                                         fmaxp.  */
-                                                                      return 534;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x0011111xx
-                                                                         fmaxp.  */
-                                                                      return 533;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx110001x00000xxxxxxxxxx
+                                                                     fcvtmu.  */
+                                                                  return 778;
                                                                 }
                                                             }
                                                           else
                                                             {
                                                                 }
                                                             }
                                                           else
                                                             {
-                                                              if (((word >> 28) & 0x1) == 0)
+                                                              if (((word >> 20) & 0x1) == 0)
                                                                 {
                                                                 {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x1011100xx
-                                                                         fminv.  */
-                                                                      return 41;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x1011101xx
-                                                                         fminv.  */
-                                                                      return 40;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx101001x00000xxxxxxxxxx
+                                                                     fcvtpu.  */
+                                                                  return 774;
                                                                 }
                                                               else
                                                                 {
                                                                 }
                                                               else
                                                                 {
-                                                                  if (((word >> 29) & 0x1) == 0)
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x1011110xx
-                                                                         fminp.  */
-                                                                      return 538;
-                                                                    }
-                                                                  else
-                                                                    {
-                                                                      /* 33222222222211111111110000000000
-                                                                         10987654321098765432109876543210
-                                                                         xxxxxxxxxx0111110xx011x1011111xx
-                                                                         fminp.  */
-                                                                      return 537;
-                                                                    }
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xxx11110xx111001x00000xxxxxxxxxx
+                                                                     fcvtzu.  */
+                                                                  return 782;
                                                                 }
                                                             }
                                                         }
                                                                 }
                                                             }
                                                         }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111110xx1x1xx0111x0xx
-                                                             fabs.  */
-                                                          return 194;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111110xx1x1xx0111x1xx
-                                                             fneg.  */
-                                                          return 243;
-                                                        }
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 19) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 28) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111111xx0x1xx01110xxx
-                                                             fsqrt.  */
-                                                          return 253;
-                                                        }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111111xx0x1xx01111xxx
-                                                             frecpx.  */
-                                                          return 498;
+                                                             xxx11110xx1xx101x00000xxxxxxxxxx
+                                                             fcvtau.  */
+                                                          return 766;
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 28) & 0x1) == 0)
+                                                      if (((word >> 18) & 0x1) == 0)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx0111111xx1x1xx01110xxx
-                                                             fsqrt.  */
-                                                          return 254;
+                                                             xxx11110xx1xx011x00000xxxxxxxxxx
+                                                             ucvtf.  */
+                                                          return 762;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx0111111xx1x1xx01111xxx
-                                                             frecpx.  */
-                                                          return 499;
+                                                          if (((word >> 19) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1x0111x00000xxxxxxxxxx
+                                                                 fmov.  */
+                                                              return 770;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1x1111x00000xxxxxxxxxx
+                                                                 fmov.  */
+                                                              return 785;
+                                                            }
                                                         }
                                                     }
                                                 }
                                             }
                                                         }
                                                     }
                                                 }
                                             }
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                      else
-                        {
-                          if (((word >> 11) & 0x1) == 0)
-                            {
-                              if (((word >> 28) & 0x1) == 0)
-                                {
-                                  if (((word >> 12) & 0x1) == 0)
-                                    {
-                                      if (((word >> 13) & 0x1) == 0)
-                                        {
-                                          if (((word >> 14) & 0x1) == 0)
-                                            {
-                                              if (((word >> 15) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100000xxxxx1xx011100xx
-                                                         shadd.  */
-                                                      return 261;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100000xxxxx1xx011101xx
-                                                         uhadd.  */
-                                                      return 313;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100001xxxxx1xx011100xx
-                                                         add.  */
-                                                      return 276;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100001xxxxx1xx011101xx
-                                                         sub.  */
-                                                      return 328;
-                                                    }
-                                                }
-                                            }
                                           else
                                             {
                                           else
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 17) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 15) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100010xxxxx1xx011100xx
-                                                         sshl.  */
-                                                      return 268;
+                                                      if (((word >> 16) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 18) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx000010000xxxxxxxxxx
+                                                                 fmov.  */
+                                                              return 799;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx100010000xxxxxxxxxx
+                                                                 frintn.  */
+                                                              return 808;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 18) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx001010000xxxxxxxxxx
+                                                                 fneg.  */
+                                                              return 803;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx101010000xxxxxxxxxx
+                                                                 frintm.  */
+                                                              return 812;
+                                                            }
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100010xxxxx1xx011101xx
-                                                         ushl.  */
-                                                      return 320;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 16) & 0x1) == 0)
                                                         {
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx100011xxxxx1x0011100xx
-                                                             fmaxnm.  */
-                                                          return 284;
+                                                          if (((word >> 18) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx000110000xxxxxxxxxx
+                                                                 fabs.  */
+                                                              return 801;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx100110000xxxxxxxxxx
+                                                                 frintp.  */
+                                                              return 810;
+                                                            }
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx100011xxxxx1x0011101xx
-                                                             fmaxnmp.  */
-                                                          return 335;
+                                                          if (((word >> 18) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx001110000xxxxxxxxxx
+                                                                 fsqrt.  */
+                                                              return 805;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx101110000xxxxxxxxxx
+                                                                 frintz.  */
+                                                              return 814;
+                                                            }
                                                         }
                                                     }
                                                         }
                                                     }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 18) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx11110xx1xx01xx10000xxxxxxxxxx
+                                                         fcvt.  */
+                                                      return 807;
+                                                    }
                                                   else
                                                     {
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 15) & 0x1) == 0)
                                                         {
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx100011xxxxx1x1011100xx
-                                                             fminnm.  */
-                                                          return 300;
+                                                          if (((word >> 16) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx110010000xxxxxxxxxx
+                                                                 frinta.  */
+                                                              return 816;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx1xx111010000xxxxxxxxxx
+                                                                 frintx.  */
+                                                              return 818;
+                                                            }
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx100011xxxxx1x1011101xx
-                                                             fminnmp.  */
-                                                          return 351;
+                                                             xxx11110xx1xx11x110000xxxxxxxxxx
+                                                             frinti.  */
+                                                          return 820;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -15681,250 +16594,143 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
-                                          if (((word >> 14) & 0x1) == 0)
+                                          if (((word >> 3) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 4) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100100xxxxx1xx011100xx
-                                                         shsub.  */
-                                                      return 264;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100100xxxxx1xx011101xx
-                                                         uhsub.  */
-                                                      return 316;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxx11110xx1xxxxxxx1000xxxxx00xxx
+                                                     fcmp.  */
+                                                  return 791;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100101xxxxx1xx011100xx
-                                                         smaxp.  */
-                                                      return 280;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100101xxxxx1xx011101xx
-                                                         umaxp.  */
-                                                      return 332;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxx11110xx1xxxxxxx1000xxxxx10xxx
+                                                     fcmpe.  */
+                                                  return 793;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 4) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100110xxxxx1xx011100xx
-                                                         smax.  */
-                                                      return 272;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100110xxxxx1xx011101xx
-                                                         umax.  */
-                                                      return 324;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxx11110xx1xxxxxxx1000xxxxx01xxx
+                                                     fcmp.  */
+                                                  return 795;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx100111xxxxx1x0011100xx
-                                                             fcmeq.  */
-                                                          return 292;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx100111xxxxx1x0011101xx
-                                                             fcmge.  */
-                                                          return 341;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx100111xxxxx1x101110xxx
-                                                         fcmgt.  */
-                                                      return 355;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxx11110xx1xxxxxxx1000xxxxx11xxx
+                                                     fcmpe.  */
+                                                  return 797;
                                                 }
                                             }
                                         }
                                     }
                                   else
                                     {
                                                 }
                                             }
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
+                                      if (((word >> 30) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 14) & 0x1) == 0)
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             x0x11110xx1xxxxxxxx100xxxxxxxxxx
+                                             fmov.  */
+                                          return 848;
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 14) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101000xxxxx1xx011100xx
-                                                         srhadd.  */
-                                                      return 263;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101000xxxxx1xx011101xx
-                                                         urhadd.  */
-                                                      return 315;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1x11110xx1xxxxxx00100xxxxxxxxxx
+                                                     sqdmlal.  */
+                                                  return 416;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101001xxxxx1xx011100xx
-                                                         mla.  */
-                                                      return 278;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101001xxxxx1xx011101xx
-                                                         mls.  */
-                                                      return 330;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1x11110xx1xxxxxx10100xxxxxxxxxx
+                                                     sqdmull.  */
+                                                  return 418;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101010xxxxx1xx011100xx
-                                                         srshl.  */
-                                                      return 270;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101010xxxxx1xx011101xx
-                                                         urshl.  */
-                                                      return 322;
-                                                    }
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101011xxxxx1x0011100xx
-                                                             fadd.  */
-                                                          return 288;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101011xxxxx1x0011101xx
-                                                             faddp.  */
-                                                          return 337;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101011xxxxx1x1011100xx
-                                                             fsub.  */
-                                                          return 304;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101011xxxxx1x1011101xx
-                                                             fabd.  */
-                                                          return 353;
-                                                        }
-                                                    }
-                                                }
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x1x11110xx1xxxxxxx1100xxxxxxxxxx
+                                                 sqdmlsl.  */
+                                              return 417;
                                             }
                                         }
                                             }
                                         }
-                                      else
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 12) & 0x1) == 0)
+                                    {
+                                      if (((word >> 13) & 0x1) == 0)
                                         {
                                           if (((word >> 14) & 0x1) == 0)
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
                                         {
                                           if (((word >> 14) & 0x1) == 0)
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 30) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx101100xxxxx1xx011100xx
-                                                         cmgt.  */
-                                                      return 266;
+                                                         x0x11110xx1xxxxx000010xxxxxxxxxx
+                                                         fmul.  */
+                                                      return 822;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx101100xxxxx1xx011101xx
-                                                         cmhi.  */
-                                                      return 318;
+                                                         x1x11110xx1xxxxx000010xxxxxxxxxx
+                                                         sha1h.  */
+                                                      return 669;
                                                     }
                                                 }
                                               else
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
                                                     }
                                                 }
                                               else
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101101xxxxx1xx011100xx
-                                                         sqdmulh.  */
-                                                      return 282;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0011110xx1xxxxx100010xxxxxxxxxx
+                                                             fnmul.  */
+                                                          return 838;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1011110xx1xxxxx100010xxxxxxxxxx
+                                                             cmgt.  */
+                                                          return 476;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx101101xxxxx1xx011101xx
-                                                         sqrdmulh.  */
-                                                      return 334;
+                                                         xx111110xx1xxxxx100010xxxxxxxxxx
+                                                         cmge.  */
+                                                      return 505;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -15934,245 +16740,338 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx101110xxxxx1xx011100xx
-                                                         sabd.  */
-                                                      return 274;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0011110xx1xxxxx010010xxxxxxxxxx
+                                                             fmax.  */
+                                                          return 830;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1011110xx1xxxxx010010xxxxxxxxxx
+                                                             sqxtn.  */
+                                                          return 480;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx101110xxxxx1xx011101xx
-                                                         uabd.  */
-                                                      return 326;
+                                                         xx111110xx1xxxxx010010xxxxxxxxxx
+                                                         uqxtn.  */
+                                                      return 509;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 16) & 0x1) == 0)
                                                     {
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101111xxxxx1x0011100xx
-                                                             fmax.  */
-                                                          return 294;
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx011110xx100xx0110010xxxxxxxxxx
+                                                                     fcmgt.  */
+                                                                  return 489;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx111110xx100xx0110010xxxxxxxxxx
+                                                                     fcmge.  */
+                                                                  return 519;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0111100x110xx0110010xxxxxxxxxx
+                                                                         fmaxnmp.  */
+                                                                      return 533;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1111100x110xx0110010xxxxxxxxxx
+                                                                         fmaxnmp.  */
+                                                                      return 532;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0111101x110xx0110010xxxxxxxxxx
+                                                                         fminnmp.  */
+                                                                      return 539;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1111101x110xx0110010xxxxxxxxxx
+                                                                         fminnmp.  */
+                                                                      return 538;
+                                                                    }
+                                                                }
+                                                            }
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101111xxxxx1x0011101xx
-                                                             fmaxp.  */
-                                                          return 345;
+                                                          if (((word >> 29) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx011110xx1x1xx0110010xxxxxxxxxx
+                                                                 fcmgt.  */
+                                                              return 490;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx111110xx1x1xx0110010xxxxxxxxxx
+                                                                 fcmge.  */
+                                                              return 520;
+                                                            }
                                                         }
                                                     }
                                                   else
                                                     {
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 29) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101111xxxxx1x1011100xx
-                                                             fmin.  */
-                                                          return 306;
+                                                          if (((word >> 29) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx011110xx1x0xx1110010xxxxxxxxxx
+                                                                 fcvtas.  */
+                                                              return 485;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx111110xx1x0xx1110010xxxxxxxxxx
+                                                                 fcvtau.  */
+                                                              return 515;
+                                                            }
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx101111xxxxx1x1011101xx
-                                                             fminp.  */
-                                                          return 359;
+                                                          if (((word >> 29) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx011110xx1x1xx1110010xxxxxxxxxx
+                                                                 fcvtas.  */
+                                                              return 486;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx111110xx1x1xx1110010xxxxxxxxxx
+                                                                 fcvtau.  */
+                                                              return 516;
+                                                            }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
-                                    }
-                                }
-                              else
-                                {
-                                  if (((word >> 29) & 0x1) == 0)
-                                    {
-                                      if (((word >> 30) & 0x1) == 0)
+                                      else
                                         {
                                         {
-                                          if (((word >> 4) & 0x1) == 0)
+                                          if (((word >> 14) & 0x1) == 0)
                                             {
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxx0xxxxx10xxxxxxxxx1xx0111100x
-                                                 fccmp.  */
-                                              return 771;
+                                              if (((word >> 15) & 0x1) == 0)
+                                                {
+                                                  if (((word >> 29) & 0x1) == 0)
+                                                    {
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0011110xx1xxxxx001010xxxxxxxxxx
+                                                             fadd.  */
+                                                          return 826;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1011110xx1xxxxx001010xxxxxxxxxx
+                                                             sha256su0.  */
+                                                          return 671;
+                                                        }
+                                                    }
+                                                  else
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xx111110xx1xxxxx001010xxxxxxxxxx
+                                                         sqxtun.  */
+                                                      return 508;
+                                                    }
+                                                }
+                                              else
+                                                {
+                                                  if (((word >> 16) & 0x1) == 0)
+                                                    {
+                                                      /* 33222222222211111111110000000000
+                                                         10987654321098765432109876543210
+                                                         xxx11110xx1xxxx0101010xxxxxxxxxx
+                                                         cmlt.  */
+                                                      return 478;
+                                                    }
+                                                  else
+                                                    {
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111100x1x0xx1101010xxxxxxxxxx
+                                                                     fcvtns.  */
+                                                                  return 481;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111100x1x0xx1101010xxxxxxxxxx
+                                                                     fcvtnu.  */
+                                                                  return 511;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111101x1x0xx1101010xxxxxxxxxx
+                                                                     fcvtps.  */
+                                                                  return 495;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111101x1x0xx1101010xxxxxxxxxx
+                                                                     fcvtpu.  */
+                                                                  return 523;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111100x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtns.  */
+                                                                  return 482;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111100x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtnu.  */
+                                                                  return 512;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111101x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtps.  */
+                                                                  return 496;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111101x1x1xx1101010xxxxxxxxxx
+                                                                     fcvtpu.  */
+                                                                  return 524;
+                                                                }
+                                                            }
+                                                        }
+                                                    }
+                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxx1xxxxx10xxxxxxxxx1xx0111100x
-                                                 fccmpe.  */
-                                              return 773;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 12) & 0x1) == 0)
-                                            {
-                                              if (((word >> 13) & 0x1) == 0)
+                                              if (((word >> 15) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 14) & 0x1) == 0)
+                                                  if (((word >> 29) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10000xxxxxx1xx0111101x
-                                                         add.  */
-                                                      return 556;
+                                                         xx011110xx1xxxxx011010xxxxxxxxxx
+                                                         fmaxnm.  */
+                                                      return 834;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx10001xxxxxx1xx0111101x
-                                                         sshl.  */
-                                                      return 554;
+                                                         xx111110xx1xxxxx011010xxxxxxxxxx
+                                                         fcvtxn.  */
+                                                      return 510;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1001xxxxxxx1xx0111101x
-                                                     fcmeq.  */
-                                                  return 546;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 13) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1010xxxxxxx1xx0111101x
-                                                     srshl.  */
-                                                  return 555;
-                                                }
-                                              else
-                                                {
-                                                  if (((word >> 15) & 0x1) == 0)
+                                                  if (((word >> 19) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1011x0xxxxx1xx0111101x
-                                                         cmgt.  */
-                                                      return 552;
+                                                         xxx11110xx1x0xxx111010xxxxxxxxxx
+                                                         fcmlt.  */
+                                                      return 493;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1011x1xxxxx1xx0111101x
-                                                         sqdmulh.  */
-                                                      return 543;
+                                                         xxx11110xx1x1xxx111010xxxxxxxxxx
+                                                         fcmlt.  */
+                                                      return 494;
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                   else
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                   else
-                                    {
-                                      if (((word >> 12) & 0x1) == 0)
-                                        {
-                                          if (((word >> 13) & 0x1) == 0)
-                                            {
-                                              if (((word >> 14) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx10000xxxxxx1xx011111xx
-                                                     sub.  */
-                                                  return 577;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx10001xxxxxx1xx011111xx
-                                                     ushl.  */
-                                                  return 575;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 23) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1001xxxxxxx1x0011111xx
-                                                     fcmge.  */
-                                                  return 563;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1001xxxxxxx1x1011111xx
-                                                     fcmgt.  */
-                                                  return 569;
-                                                }
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 13) & 0x1) == 0)
-                                            {
-                                              if (((word >> 15) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1010x0xxxxx1xx011111xx
-                                                     urshl.  */
-                                                  return 576;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1010x1xxxxx1xx011111xx
-                                                     fabd.  */
-                                                  return 567;
-                                                }
-                                            }
-                                          else
-                                            {
-                                              if (((word >> 15) & 0x1) == 0)
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1011x0xxxxx1xx011111xx
-                                                     cmhi.  */
-                                                  return 573;
-                                                }
-                                              else
-                                                {
-                                                  /* 33222222222211111111110000000000
-                                                     10987654321098765432109876543210
-                                                     xxxxxxxxxx1011x1xxxxx1xx011111xx
-                                                     sqrdmulh.  */
-                                                  return 562;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                            }
-                          else
-                            {
-                              if (((word >> 28) & 0x1) == 0)
-                                {
-                                  if (((word >> 12) & 0x1) == 0)
                                     {
                                       if (((word >> 13) & 0x1) == 0)
                                         {
                                     {
                                       if (((word >> 13) & 0x1) == 0)
                                         {
@@ -16180,21 +17079,21 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 30) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110000xxxxx1xx011100xx
-                                                         sqadd.  */
-                                                      return 262;
+                                                         x0x11110xx1xxxxx000110xxxxxxxxxx
+                                                         fdiv.  */
+                                                      return 824;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110000xxxxx1xx011101xx
-                                                         uqadd.  */
-                                                      return 314;
+                                                         x1x11110xx1xxxxx000110xxxxxxxxxx
+                                                         sha1su1.  */
+                                                      return 670;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -16203,17 +17102,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110001xxxxx1xx011100xx
-                                                         cmtst.  */
-                                                      return 277;
+                                                         xx011110xx1xxxxx100110xxxxxxxxxx
+                                                         cmeq.  */
+                                                      return 477;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110001xxxxx1xx011101xx
-                                                         cmeq.  */
-                                                      return 329;
+                                                         xx111110xx1xxxxx100110xxxxxxxxxx
+                                                         cmle.  */
+                                                      return 506;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -16221,40 +17120,161 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110010xxxxx1xx011100xx
-                                                         sqshl.  */
-                                                      return 269;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110010xxxxx1xx011101xx
-                                                         uqshl.  */
-                                                      return 321;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xxx11110xx1xxxxx010110xxxxxxxxxx
+                                                     fmin.  */
+                                                  return 832;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
+                                                  if (((word >> 16) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110011xxxxx1x001110xxx
-                                                         fmla.  */
-                                                      return 286;
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx011110xx100xx0110110xxxxxxxxxx
+                                                                     fcmeq.  */
+                                                                  return 491;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx111110xx100xx0110110xxxxxxxxxx
+                                                                     fcmle.  */
+                                                                  return 521;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx011110xx110xx0110110xxxxxxxxxx
+                                                                     faddp.  */
+                                                                  return 535;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx111110xx110xx0110110xxxxxxxxxx
+                                                                     faddp.  */
+                                                                  return 534;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 29) & 0x1) == 0)
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx011110xx1x1xx0110110xxxxxxxxxx
+                                                                 fcmeq.  */
+                                                              return 492;
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xx111110xx1x1xx0110110xxxxxxxxxx
+                                                                 fcmle.  */
+                                                              return 522;
+                                                            }
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110011xxxxx1x101110xxx
-                                                         fmls.  */
-                                                      return 302;
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111100x1x0xx1110110xxxxxxxxxx
+                                                                     scvtf.  */
+                                                                  return 487;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111100x1x0xx1110110xxxxxxxxxx
+                                                                     ucvtf.  */
+                                                                  return 517;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111101x1x0xx1110110xxxxxxxxxx
+                                                                     frecpe.  */
+                                                                  return 499;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111101x1x0xx1110110xxxxxxxxxx
+                                                                     frsqrte.  */
+                                                                  return 527;
+                                                                }
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111100x1x1xx1110110xxxxxxxxxx
+                                                                     scvtf.  */
+                                                                  return 488;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111100x1x1xx1110110xxxxxxxxxx
+                                                                     ucvtf.  */
+                                                                  return 518;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111101x1x1xx1110110xxxxxxxxxx
+                                                                     frecpe.  */
+                                                                  return 500;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111101x1x1xx1110110xxxxxxxxxx
+                                                                     frsqrte.  */
+                                                                  return 528;
+                                                                }
+                                                            }
+                                                        }
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -16267,38 +17287,148 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110100xxxxx1xx011100xx
-                                                         sqsub.  */
-                                                      return 265;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0011110xx1xxxxx001110xxxxxxxxxx
+                                                             fsub.  */
+                                                          return 828;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1011110xx1xxxxx001110xxxxxxxxxx
+                                                             suqadd.  */
+                                                          return 474;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110100xxxxx1xx011101xx
-                                                         uqsub.  */
-                                                      return 317;
+                                                         xx111110xx1xxxxx001110xxxxxxxxxx
+                                                         usqadd.  */
+                                                      return 503;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 16) & 0x1) == 0)
                                                     {
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110101xxxxx1xx011100xx
-                                                         sminp.  */
-                                                      return 281;
+                                                      if (((word >> 29) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx011110xx1xxxx0101110xxxxxxxxxx
+                                                             abs.  */
+                                                          return 479;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xx111110xx1xxxx0101110xxxxxxxxxx
+                                                             neg.  */
+                                                          return 507;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110101xxxxx1xx011101xx
-                                                         uminp.  */
-                                                      return 333;
+                                                      if (((word >> 19) & 0x1) == 0)
+                                                        {
+                                                          if (((word >> 20) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 23) & 0x1) == 0)
+                                                                {
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0111100x100xx1101110xxxxxxxxxx
+                                                                         fcvtms.  */
+                                                                      return 483;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1111100x100xx1101110xxxxxxxxxx
+                                                                         fcvtmu.  */
+                                                                      return 513;
+                                                                    }
+                                                                }
+                                                              else
+                                                                {
+                                                                  if (((word >> 29) & 0x1) == 0)
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx0111101x100xx1101110xxxxxxxxxx
+                                                                         fcvtzs.  */
+                                                                      return 497;
+                                                                    }
+                                                                  else
+                                                                    {
+                                                                      /* 33222222222211111111110000000000
+                                                                         10987654321098765432109876543210
+                                                                         xx1111101x100xx1101110xxxxxxxxxx
+                                                                         fcvtzu.  */
+                                                                      return 525;
+                                                                    }
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              /* 33222222222211111111110000000000
+                                                                 10987654321098765432109876543210
+                                                                 xxx11110xx110xx1101110xxxxxxxxxx
+                                                                 addp.  */
+                                                              return 531;
+                                                            }
+                                                        }
+                                                      else
+                                                        {
+                                                          if (((word >> 23) & 0x1) == 0)
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111100x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtms.  */
+                                                                  return 484;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111100x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtmu.  */
+                                                                  return 514;
+                                                                }
+                                                            }
+                                                          else
+                                                            {
+                                                              if (((word >> 29) & 0x1) == 0)
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx0111101x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtzs.  */
+                                                                  return 498;
+                                                                }
+                                                              else
+                                                                {
+                                                                  /* 33222222222211111111110000000000
+                                                                     10987654321098765432109876543210
+                                                                     xx1111101x1x1xx1101110xxxxxxxxxx
+                                                                     fcvtzu.  */
+                                                                  return 526;
+                                                                }
+                                                            }
+                                                        }
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -16308,52 +17438,35 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
                                                 {
                                                   if (((word >> 29) & 0x1) == 0)
                                                     {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110110xxxxx1xx011100xx
-                                                         smin.  */
-                                                      return 273;
+                                                      if (((word >> 30) & 0x1) == 0)
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x0011110xx1xxxxx011110xxxxxxxxxx
+                                                             fminnm.  */
+                                                          return 836;
+                                                        }
+                                                      else
+                                                        {
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             x1011110xx1xxxxx011110xxxxxxxxxx
+                                                             sqabs.  */
+                                                          return 475;
+                                                        }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110110xxxxx1xx011101xx
-                                                         umin.  */
-                                                      return 325;
+                                                         xx111110xx1xxxxx011110xxxxxxxxxx
+                                                         sqneg.  */
+                                                      return 504;
                                                     }
                                                 }
                                               else
                                                 {
                                                     }
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110111xxxxx1x001110xxx
-                                                         facge.  */
-                                                      return 343;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx110111xxxxx1x101110xxx
-                                                         facgt.  */
-                                                      return 357;
-                                                    }
-                                                }
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 13) & 0x1) == 0)
-                                        {
-                                          if (((word >> 14) & 0x1) == 0)
-                                            {
-                                              if (((word >> 15) & 0x1) == 0)
-                                                {
-                                                  if (((word >> 22) & 0x1) == 0)
+                                                  if (((word >> 16) & 0x1) == 0)
                                                     {
                                                       if (((word >> 23) & 0x1) == 0)
                                                         {
                                                     {
                                                       if (((word >> 23) & 0x1) == 0)
                                                         {
@@ -16361,17 +17474,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx100011100xx
-                                                                 and.  */
-                                                              return 298;
+                                                                 xx0111100x1xxxx0111110xxxxxxxxxx
+                                                                 fmaxp.  */
+                                                              return 537;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx100011101xx
-                                                                 eor.  */
-                                                              return 349;
+                                                                 xx1111100x1xxxx0111110xxxxxxxxxx
+                                                                 fmaxp.  */
+                                                              return 536;
                                                             }
                                                         }
                                                       else
                                                             }
                                                         }
                                                       else
@@ -16380,206 +17493,215 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx101011100xx
-                                                                 orr.  */
-                                                              return 310;
+                                                                 xx0111101x1xxxx0111110xxxxxxxxxx
+                                                                 fminp.  */
+                                                              return 541;
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
                                                             }
                                                           else
                                                             {
                                                               /* 33222222222211111111110000000000
                                                                  10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx101011101xx
-                                                                 bit.  */
-                                                              return 361;
+                                                                 xx1111101x1xxxx0111110xxxxxxxxxx
+                                                                 fminp.  */
+                                                              return 540;
                                                             }
                                                         }
                                                     }
                                                   else
                                                     {
                                                             }
                                                         }
                                                     }
                                                   else
                                                     {
-                                                      if (((word >> 23) & 0x1) == 0)
+                                                      if (((word >> 19) & 0x1) == 0)
                                                         {
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx110011100xx
-                                                                 bic.  */
-                                                              return 299;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx110011101xx
-                                                                 bsl.  */
-                                                              return 350;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxx11110xx1x0xx1111110xxxxxxxxxx
+                                                             frecpx.  */
+                                                          return 501;
                                                         }
                                                       else
                                                         {
                                                         }
                                                       else
                                                         {
-                                                          if (((word >> 29) & 0x1) == 0)
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx111011100xx
-                                                                 orn.  */
-                                                              return 312;
-                                                            }
-                                                          else
-                                                            {
-                                                              /* 33222222222211111111110000000000
-                                                                 10987654321098765432109876543210
-                                                                 xxxxxxxxxx111000xxxxx111011101xx
-                                                                 bif.  */
-                                                              return 362;
-                                                            }
+                                                          /* 33222222222211111111110000000000
+                                                             10987654321098765432109876543210
+                                                             xxx11110xx1x1xx1111110xxxxxxxxxx
+                                                             frecpx.  */
+                                                          return 502;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
-                                              else
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                          else
+                            {
+                              if (((word >> 11) & 0x1) == 0)
+                                {
+                                  if (((word >> 29) & 0x1) == 0)
+                                    {
+                                      if (((word >> 30) & 0x1) == 0)
+                                        {
+                                          if (((word >> 4) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x0011110xx1xxxxxxxxx01xxxxx0xxxx
+                                                 fccmp.  */
+                                              return 787;
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 x0011110xx1xxxxxxxxx01xxxxx1xxxx
+                                                 fccmpe.  */
+                                              return 789;
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 12) & 0x1) == 0)
+                                            {
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 14) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx111001xxxxx1xx011100xx
-                                                         mul.  */
-                                                      return 279;
+                                                         x1011110xx1xxxxxx00001xxxxxxxxxx
+                                                         add.  */
+                                                      return 559;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx111001xxxxx1xx011101xx
-                                                         pmul.  */
-                                                      return 331;
+                                                         x1011110xx1xxxxxx10001xxxxxxxxxx
+                                                         sshl.  */
+                                                      return 557;
                                                     }
                                                 }
                                                     }
                                                 }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1011110xx1xxxxxxx1001xxxxxxxxxx
+                                                     fcmeq.  */
+                                                  return 549;
+                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              if (((word >> 15) & 0x1) == 0)
+                                              if (((word >> 13) & 0x1) == 0)
                                                 {
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111010xxxxx1xx011100xx
-                                                         sqrshl.  */
-                                                      return 271;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111010xxxxx1xx011101xx
-                                                         uqrshl.  */
-                                                      return 323;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1011110xx1xxxxxxx0101xxxxxxxxxx
+                                                     srshl.  */
+                                                  return 558;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
+                                                  if (((word >> 15) & 0x1) == 0)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx111011xxxxx1xx011100xx
-                                                         fmulx.  */
-                                                      return 290;
+                                                         x1011110xx1xxxxx0x1101xxxxxxxxxx
+                                                         cmgt.  */
+                                                      return 555;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx111011xxxxx1xx011101xx
-                                                         fmul.  */
-                                                      return 339;
+                                                         x1011110xx1xxxxx1x1101xxxxxxxxxx
+                                                         sqdmulh.  */
+                                                      return 546;
                                                     }
                                                 }
                                             }
                                         }
                                                     }
                                                 }
                                             }
                                         }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 12) & 0x1) == 0)
+                                        {
+                                          if (((word >> 13) & 0x1) == 0)
+                                            {
+                                              if (((word >> 14) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx111110xx1xxxxxx00001xxxxxxxxxx
+                                                     sub.  */
+                                                  return 580;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx111110xx1xxxxxx10001xxxxxxxxxx
+                                                     ushl.  */
+                                                  return 578;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx1111100x1xxxxxxx1001xxxxxxxxxx
+                                                     fcmge.  */
+                                                  return 566;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx1111101x1xxxxxxx1001xxxxxxxxxx
+                                                     fcmgt.  */
+                                                  return 572;
+                                                }
+                                            }
+                                        }
                                       else
                                         {
                                       else
                                         {
-                                          if (((word >> 14) & 0x1) == 0)
+                                          if (((word >> 13) & 0x1) == 0)
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111100xxxxx1xx011100xx
-                                                         cmge.  */
-                                                      return 267;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111100xxxxx1xx011101xx
-                                                         cmhs.  */
-                                                      return 319;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx111110xx1xxxxx0x0101xxxxxxxxxx
+                                                     urshl.  */
+                                                  return 579;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx111101xxxxx1xx01110xxx
-                                                     addp.  */
-                                                  return 283;
+                                                     xx111110xx1xxxxx1x0101xxxxxxxxxx
+                                                     fabd.  */
+                                                  return 570;
                                                 }
                                             }
                                           else
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
                                                 }
                                             }
                                           else
                                             {
                                               if (((word >> 15) & 0x1) == 0)
                                                 {
-                                                  if (((word >> 29) & 0x1) == 0)
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111110xxxxx1xx011100xx
-                                                         saba.  */
-                                                      return 275;
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111110xxxxx1xx011101xx
-                                                         uaba.  */
-                                                      return 327;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx111110xx1xxxxx0x1101xxxxxxxxxx
+                                                     cmhi.  */
+                                                  return 576;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
-                                                  if (((word >> 23) & 0x1) == 0)
-                                                    {
-                                                      if (((word >> 29) & 0x1) == 0)
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx111111xxxxx1x0011100xx
-                                                             frecps.  */
-                                                          return 296;
-                                                        }
-                                                      else
-                                                        {
-                                                          /* 33222222222211111111110000000000
-                                                             10987654321098765432109876543210
-                                                             xxxxxxxxxx111111xxxxx1x0011101xx
-                                                             fdiv.  */
-                                                          return 347;
-                                                        }
-                                                    }
-                                                  else
-                                                    {
-                                                      /* 33222222222211111111110000000000
-                                                         10987654321098765432109876543210
-                                                         xxxxxxxxxx111111xxxxx1x101110xxx
-                                                         frsqrts.  */
-                                                      return 308;
-                                                    }
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx111110xx1xxxxx1x1101xxxxxxxxxx
+                                                     sqrdmulh.  */
+                                                  return 565;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -16593,9 +17715,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx11xxxxxxxxx1xx0111100x
+                                             x0011110xx1xxxxxxxxx11xxxxxxxxxx
                                              fcsel.  */
                                              fcsel.  */
-                                          return 834;
+                                          return 850;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -16609,35 +17731,35 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx110000xxxxx1xx0111101x
+                                                             x1011110xx1xxxxx000011xxxxxxxxxx
                                                              sqadd.  */
                                                              sqadd.  */
-                                                          return 539;
+                                                          return 542;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx110001xxxxx1xx0111101x
+                                                             x1011110xx1xxxxx100011xxxxxxxxxx
                                                              cmtst.  */
                                                              cmtst.  */
-                                                          return 557;
+                                                          return 560;
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                         }
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11001xxxxxx1xx0111101x
+                                                         x1011110xx1xxxxxx10011xxxxxxxxxx
                                                          sqshl.  */
                                                          sqshl.  */
-                                                      return 541;
+                                                      return 544;
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1101xxxxxxx1xx0111101x
+                                                     x1011110xx1xxxxxxx1011xxxxxxxxxx
                                                      sqsub.  */
                                                      sqsub.  */
-                                                  return 540;
+                                                  return 543;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -16648,17 +17770,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1110x0xxxxx1xx0111101x
+                                                         x1011110xx1xxxxx0x0111xxxxxxxxxx
                                                          sqrshl.  */
                                                          sqrshl.  */
-                                                      return 542;
+                                                      return 545;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx1110x1xxxxx1xx0111101x
+                                                         x1011110xx1xxxxx1x0111xxxxxxxxxx
                                                          fmulx.  */
                                                          fmulx.  */
-                                                      return 544;
+                                                      return 547;
                                                     }
                                                 }
                                               else
                                                     }
                                                 }
                                               else
@@ -16667,9 +17789,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11110xxxxxx1xx0111101x
+                                                         x1011110xx1xxxxxx01111xxxxxxxxxx
                                                          cmge.  */
                                                          cmge.  */
-                                                      return 553;
+                                                      return 556;
                                                     }
                                                   else
                                                     {
                                                     }
                                                   else
                                                     {
@@ -16677,17 +17799,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx11111xxxxxx1x00111101x
+                                                             x10111100x1xxxxxx11111xxxxxxxxxx
                                                              frecps.  */
                                                              frecps.  */
-                                                          return 548;
+                                                          return 551;
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
                                                         }
                                                       else
                                                         {
                                                           /* 33222222222211111111110000000000
                                                              10987654321098765432109876543210
-                                                             xxxxxxxxxx11111xxxxxx1x10111101x
+                                                             x10111101x1xxxxxx11111xxxxxxxxxx
                                                              frsqrts.  */
                                                              frsqrts.  */
-                                                          return 550;
+                                                          return 553;
                                                         }
                                                     }
                                                 }
                                                         }
                                                     }
                                                 }
@@ -16706,26 +17828,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110000xxxxx1xx011111xx
+                                                         xx111110xx1xxxxx000011xxxxxxxxxx
                                                          uqadd.  */
                                                          uqadd.  */
-                                                      return 558;
+                                                      return 561;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx110001xxxxx1xx011111xx
+                                                         xx111110xx1xxxxx100011xxxxxxxxxx
                                                          cmeq.  */
                                                          cmeq.  */
-                                                      return 578;
+                                                      return 581;
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx11001xxxxxx1xx011111xx
+                                                     xx111110xx1xxxxxx10011xxxxxxxxxx
                                                      uqshl.  */
                                                      uqshl.  */
-                                                  return 560;
+                                                  return 563;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -16734,9 +17856,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx11010xxxxxx1xx011111xx
+                                                     xx111110xx1xxxxxx01011xxxxxxxxxx
                                                      uqsub.  */
                                                      uqsub.  */
-                                                  return 559;
+                                                  return 562;
                                                 }
                                               else
                                                 {
                                                 }
                                               else
                                                 {
@@ -16744,17 +17866,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11011xxxxxx1x0011111xx
+                                                         xx1111100x1xxxxxx11011xxxxxxxxxx
                                                          facge.  */
                                                          facge.  */
-                                                      return 565;
+                                                      return 568;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx11011xxxxxx1x1011111xx
+                                                         xx1111101x1xxxxxx11011xxxxxxxxxx
                                                          facgt.  */
                                                          facgt.  */
-                                                      return 571;
+                                                      return 574;
                                                     }
                                                 }
                                             }
                                                     }
                                                 }
                                             }
@@ -16765,17 +17887,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1110xxxxxxx1xx011111xx
+                                                 xx111110xx1xxxxxxx0111xxxxxxxxxx
                                                  uqrshl.  */
                                                  uqrshl.  */
-                                              return 561;
+                                              return 564;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1111xxxxxxx1xx011111xx
+                                                 xx111110xx1xxxxxxx1111xxxxxxxxxx
                                                  cmhs.  */
                                                  cmhs.  */
-                                              return 574;
+                                              return 577;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -16798,19 +17920,63 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       if (((word >> 14) & 0x1) == 0)
                                         {
                                     {
                                       if (((word >> 14) & 0x1) == 0)
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x0000xxxxxxxx11110xxx
-                                             mla.  */
-                                          return 117;
+                                          if (((word >> 29) & 0x1) == 0)
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0001111xxxxxxxx0000x0xxxxxxxxxx
+                                                     fmlal.  */
+                                                  return 2015;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1001111xxxxxxxx0000x0xxxxxxxxxx
+                                                     fmlal.  */
+                                                  return 2019;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xx101111xxxxxxxx0000x0xxxxxxxxxx
+                                                 mla.  */
+                                              return 117;
+                                            }
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x0010xxxxxxxx11110xxx
-                                             mls.  */
-                                          return 120;
+                                          if (((word >> 29) & 0x1) == 0)
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0001111xxxxxxxx0100x0xxxxxxxxxx
+                                                     fmlsl.  */
+                                                  return 2016;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1001111xxxxxxxx0100x0xxxxxxxxxx
+                                                     fmlsl.  */
+                                                  return 2020;
+                                                }
+                                            }
+                                          else
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xx101111xxxxxxxx0100x0xxxxxxxxxx
+                                                 mls.  */
+                                              return 120;
+                                            }
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -16823,7 +17989,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0100xxxxxxxx1111000x
+                                                     x0001111xxxxxxxx0010x0xxxxxxxxxx
                                                      smlal.  */
                                                   return 96;
                                                 }
                                                      smlal.  */
                                                   return 96;
                                                 }
@@ -16831,7 +17997,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0100xxxxxxxx1111001x
+                                                     x1001111xxxxxxxx0010x0xxxxxxxxxx
                                                      smlal2.  */
                                                   return 97;
                                                 }
                                                      smlal2.  */
                                                   return 97;
                                                 }
@@ -16842,7 +18008,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0100xxxxxxxx1111010x
+                                                     x0101111xxxxxxxx0010x0xxxxxxxxxx
                                                      umlal.  */
                                                   return 118;
                                                 }
                                                      umlal.  */
                                                   return 118;
                                                 }
@@ -16850,7 +18016,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0100xxxxxxxx1111011x
+                                                     x1101111xxxxxxxx0010x0xxxxxxxxxx
                                                      umlal2.  */
                                                   return 119;
                                                 }
                                                      umlal2.  */
                                                   return 119;
                                                 }
@@ -16864,7 +18030,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0110xxxxxxxx1111000x
+                                                     x0001111xxxxxxxx0110x0xxxxxxxxxx
                                                      smlsl.  */
                                                   return 100;
                                                 }
                                                      smlsl.  */
                                                   return 100;
                                                 }
@@ -16872,7 +18038,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0110xxxxxxxx1111001x
+                                                     x1001111xxxxxxxx0110x0xxxxxxxxxx
                                                      smlsl2.  */
                                                   return 101;
                                                 }
                                                      smlsl2.  */
                                                   return 101;
                                                 }
@@ -16883,7 +18049,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0110xxxxxxxx1111010x
+                                                     x0101111xxxxxxxx0110x0xxxxxxxxxx
                                                      umlsl.  */
                                                   return 121;
                                                 }
                                                      umlsl.  */
                                                   return 121;
                                                 }
@@ -16891,7 +18057,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x0110xxxxxxxx1111011x
+                                                     x1101111xxxxxxxx0110x0xxxxxxxxxx
                                                      umlsl2.  */
                                                   return 122;
                                                 }
                                                      umlsl2.  */
                                                   return 122;
                                                 }
@@ -16901,88 +18067,99 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                 }
                               else
                                 {
                                 }
                               else
                                 {
-                                  if (((word >> 13) & 0x1) == 0)
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1000xxxxxxx011110xxx
-                                                 fmla.  */
-                                              return 112;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1000xxxxxxx111110xxx
-                                                 fmla.  */
-                                              return 111;
-                                            }
-                                        }
-                                      else
-                                        {
-                                          if (((word >> 23) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1010xxxxxxx011110xxx
-                                                 fmls.  */
-                                              return 114;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1010xxxxxxx111110xxx
-                                                 fmls.  */
-                                              return 113;
-                                            }
-                                        }
-                                    }
-                                  else
+                                  if (((word >> 29) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      if (((word >> 13) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
+                                          if (((word >> 14) & 0x1) == 0)
                                             {
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1100xxxxxxxx11110x0x
-                                                 sqdmlal.  */
-                                              return 98;
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx0011110xxxxxxx0001x0xxxxxxxxxx
+                                                     fmla.  */
+                                                  return 112;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx0011111xxxxxxx0001x0xxxxxxxxxx
+                                                     fmla.  */
+                                                  return 111;
+                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1100xxxxxxxx11110x1x
-                                                 sqdmlal2.  */
-                                              return 99;
+                                              if (((word >> 23) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx0011110xxxxxxx0101x0xxxxxxxxxx
+                                                     fmls.  */
+                                                  return 114;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     xx0011111xxxxxxx0101x0xxxxxxxxxx
+                                                     fmls.  */
+                                                  return 113;
+                                                }
                                             }
                                         }
                                       else
                                         {
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1110xxxxxxxx11110x0x
-                                                 sqdmlsl.  */
-                                              return 102;
+                                          if (((word >> 14) & 0x1) == 0)
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0001111xxxxxxxx0011x0xxxxxxxxxx
+                                                     sqdmlal.  */
+                                                  return 98;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1001111xxxxxxxx0011x0xxxxxxxxxx
+                                                     sqdmlal2.  */
+                                                  return 99;
+                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1110xxxxxxxx11110x1x
-                                                 sqdmlsl2.  */
-                                              return 103;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0001111xxxxxxxx0111x0xxxxxxxxxx
+                                                     sqdmlsl.  */
+                                                  return 102;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1001111xxxxxxxx0111x0xxxxxxxxxx
+                                                     sqdmlsl2.  */
+                                                  return 103;
+                                                }
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
+                                  else
+                                    {
+                                      /* 33222222222211111111110000000000
+                                         10987654321098765432109876543210
+                                         xx101111xxxxxxxx0xx1x0xxxxxxxxxx
+                                         fcmla.  */
+                                      return 129;
+                                    }
                                 }
                             }
                           else
                                 }
                             }
                           else
@@ -16993,17 +18170,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1x0xx0xxxxxxxx111100xx
+                                         xx001111xxxxxxxx0xx0x1xxxxxxxxxx
                                          movi.  */
                                          movi.  */
-                                      return 130;
+                                      return 131;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1x0xx0xxxxxxxx111101xx
+                                         xx101111xxxxxxxx0xx0x1xxxxxxxxxx
                                          mvni.  */
                                          mvni.  */
-                                      return 138;
+                                      return 139;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -17012,17 +18189,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1x1xx0xxxxxxxx111100xx
+                                         xx001111xxxxxxxx0xx1x1xxxxxxxxxx
                                          orr.  */
                                          orr.  */
-                                      return 131;
+                                      return 132;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx1x1xx0xxxxxxxx111101xx
+                                         xx101111xxxxxxxx0xx1x1xxxxxxxxxx
                                          bic.  */
                                          bic.  */
-                                      return 139;
+                                      return 140;
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -17037,17 +18214,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx0xxxxx0xx1111100x
+                                         x0011111xx0xxxxx0xxxxxxxxxxxxxxx
                                          fmadd.  */
                                          fmadd.  */
-                                      return 824;
+                                      return 840;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx0xxxxx1xx1111100x
+                                         x0011111xx1xxxxx0xxxxxxxxxxxxxxx
                                          fnmadd.  */
                                          fnmadd.  */
-                                      return 828;
+                                      return 844;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -17062,17 +18239,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0xx000xxxxxxx01111101x
+                                                     x10111110xxxxxxx000xx0xxxxxxxxxx
                                                      fmla.  */
                                                      fmla.  */
-                                                  return 422;
+                                                  return 425;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0xx000xxxxxxx11111101x
+                                                     x10111111xxxxxxx000xx0xxxxxxxxxx
                                                      fmla.  */
                                                      fmla.  */
-                                                  return 421;
+                                                  return 424;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -17081,17 +18258,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0xx010xxxxxxx01111101x
+                                                     x10111110xxxxxxx010xx0xxxxxxxxxx
                                                      fmls.  */
                                                      fmls.  */
-                                                  return 424;
+                                                  return 427;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0xx010xxxxxxx11111101x
+                                                     x10111111xxxxxxx010xx0xxxxxxxxxx
                                                      fmls.  */
                                                      fmls.  */
-                                                  return 423;
+                                                  return 426;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -17101,17 +18278,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0xx100xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx001xx0xxxxxxxxxx
                                                  sqdmlal.  */
                                                  sqdmlal.  */
-                                              return 416;
+                                              return 419;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0xx110xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx011xx0xxxxxxxxxx
                                                  sqdmlsl.  */
                                                  sqdmlsl.  */
-                                              return 417;
+                                              return 420;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -17123,17 +18300,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1x00x0xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx0x00x1xxxxxxxxxx
                                                  sshr.  */
                                                  sshr.  */
-                                              return 581;
+                                              return 584;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1x01x0xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx0x10x1xxxxxxxxxx
                                                  srshr.  */
                                                  srshr.  */
-                                              return 583;
+                                              return 586;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -17144,17 +18321,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1x1000xxxxxxxx1111101x
+                                                     x1011111xxxxxxxx0001x1xxxxxxxxxx
                                                      ssra.  */
                                                      ssra.  */
-                                                  return 582;
+                                                  return 585;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1x1010xxxxxxxx1111101x
+                                                     x1011111xxxxxxxx0101x1xxxxxxxxxx
                                                      shl.  */
                                                      shl.  */
-                                                  return 585;
+                                                  return 588;
                                                 }
                                             }
                                           else
                                                 }
                                             }
                                           else
@@ -17163,17 +18340,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1x1100xxxxxxxx1111101x
+                                                     x1011111xxxxxxxx0011x1xxxxxxxxxx
                                                      srsra.  */
                                                      srsra.  */
-                                                  return 584;
+                                                  return 587;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1x1110xxxxxxxx1111101x
+                                                     x1011111xxxxxxxx0111x1xxxxxxxxxx
                                                      sqshl.  */
                                                      sqshl.  */
-                                                  return 586;
+                                                  return 589;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
@@ -17190,17 +18367,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx0000xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0000xxxxxxxxxxxx
                                              ushr.  */
                                              ushr.  */
-                                          return 593;
+                                          return 596;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx0010xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0100xxxxxxxxxxxx
                                              sri.  */
                                              sri.  */
-                                          return 597;
+                                          return 600;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -17209,17 +18386,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx0100xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0010xxxxxxxxxxxx
                                              urshr.  */
                                              urshr.  */
-                                          return 595;
+                                          return 598;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx0110xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0110xxxxxxxxxxxx
                                              sqshlu.  */
                                              sqshlu.  */
-                                          return 599;
+                                          return 602;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -17231,17 +18408,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx1000xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0001xxxxxxxxxxxx
                                              usra.  */
                                              usra.  */
-                                          return 594;
+                                          return 597;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx1010xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0101xxxxxxxxxxxx
                                              sli.  */
                                              sli.  */
-                                          return 598;
+                                          return 601;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -17250,17 +18427,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx1100xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0011xxxxxxxxxxxx
                                              ursra.  */
                                              ursra.  */
-                                          return 596;
+                                          return 599;
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxxxx1110xxxxxxxx111111xx
+                                             xx111111xxxxxxxx0111xxxxxxxxxxxx
                                              uqshl.  */
                                              uqshl.  */
-                                          return 600;
+                                          return 603;
                                         }
                                     }
                                 }
                                         }
                                     }
                                 }
@@ -17271,76 +18448,87 @@ aarch64_opcode_lookup_1 (uint32_t word)
                     {
                       if (((word >> 28) & 0x1) == 0)
                         {
                     {
                       if (((word >> 28) & 0x1) == 0)
                         {
-                          if (((word >> 10) & 0x1) == 0)
+                          if (((word >> 14) & 0x1) == 0)
                             {
                             {
-                              if (((word >> 12) & 0x1) == 0)
+                              if (((word >> 10) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 13) & 0x1) == 0)
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x0001xxxxxxxx11110xxx
-                                             mul.  */
-                                          return 104;
-                                        }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x0011xxxxxxxx11110xxx
-                                             sqdmulh.  */
-                                          return 109;
-                                        }
-                                    }
-                                  else
+                                  if (((word >> 12) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 29) & 0x1) == 0)
+                                      if (((word >> 13) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
+                                          if (((word >> 29) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0x01x1xxxxxxxx1111000x
-                                                 smull.  */
-                                              return 105;
+                                                 xx001111xxxxxxxx1000x0xxxxxxxxxx
+                                                 mul.  */
+                                              return 104;
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x01x1xxxxxxxx1111001x
-                                                 smull2.  */
-                                              return 106;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0101111xxxxxxxx1000x0xxxxxxxxxx
+                                                     fmlal2.  */
+                                                  return 2017;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1101111xxxxxxxx1000x0xxxxxxxxxx
+                                                     fmlal2.  */
+                                                  return 2021;
+                                                }
                                             }
                                         }
                                       else
                                         {
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
+                                          if (((word >> 29) & 0x1) == 0)
                                             {
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x01x1xxxxxxxx1111010x
-                                                 umull.  */
-                                              return 123;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0001111xxxxxxxx1010x0xxxxxxxxxx
+                                                     smull.  */
+                                                  return 105;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1001111xxxxxxxx1010x0xxxxxxxxxx
+                                                     smull2.  */
+                                                  return 106;
+                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x01x1xxxxxxxx1111011x
-                                                 umull2.  */
-                                              return 124;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0101111xxxxxxxx1010x0xxxxxxxxxx
+                                                     umull.  */
+                                                  return 123;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1101111xxxxxxxx1010x0xxxxxxxxxx
+                                                     umull2.  */
+                                                  return 124;
+                                                }
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
-                                }
-                              else
-                                {
-                                  if (((word >> 13) & 0x1) == 0)
+                                  else
                                     {
                                     {
-                                      if (((word >> 14) & 0x1) == 0)
+                                      if (((word >> 13) & 0x1) == 0)
                                         {
                                           if (((word >> 23) & 0x1) == 0)
                                             {
                                         {
                                           if (((word >> 23) & 0x1) == 0)
                                             {
@@ -17348,7 +18536,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1001xxxxxxx0111100xx
+                                                     xx0011110xxxxxxx1001x0xxxxxxxxxx
                                                      fmul.  */
                                                   return 116;
                                                 }
                                                      fmul.  */
                                                   return 116;
                                                 }
@@ -17356,7 +18544,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1001xxxxxxx0111101xx
+                                                     xx1011110xxxxxxx1001x0xxxxxxxxxx
                                                      fmulx.  */
                                                   return 126;
                                                 }
                                                      fmulx.  */
                                                   return 126;
                                                 }
@@ -17367,7 +18555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1001xxxxxxx1111100xx
+                                                     xx0011111xxxxxxx1001x0xxxxxxxxxx
                                                      fmul.  */
                                                   return 115;
                                                 }
                                                      fmul.  */
                                                   return 115;
                                                 }
@@ -17375,41 +18563,19 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1001xxxxxxx1111101xx
+                                                     xx1011111xxxxxxx1001x0xxxxxxxxxx
                                                      fmulx.  */
                                                   return 125;
                                                 }
                                             }
                                         }
                                       else
                                                      fmulx.  */
                                                   return 125;
                                                 }
                                             }
                                         }
                                       else
-                                        {
-                                          if (((word >> 29) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1011xxxxxxxx111100xx
-                                                 sqrdmulh.  */
-                                              return 110;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1011xxxxxxxx111101xx
-                                                 sqrdmlah.  */
-                                              return 127;
-                                            }
-                                        }
-                                    }
-                                  else
-                                    {
-                                      if (((word >> 14) & 0x1) == 0)
                                         {
                                           if (((word >> 30) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                         {
                                           if (((word >> 30) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1101xxxxxxxx11110x0x
+                                                 x0x01111xxxxxxxx1011x0xxxxxxxxxx
                                                  sqdmull.  */
                                               return 107;
                                             }
                                                  sqdmull.  */
                                               return 107;
                                             }
@@ -17417,27 +18583,16 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0x1101xxxxxxxx11110x1x
+                                                 x1x01111xxxxxxxx1011x0xxxxxxxxxx
                                                  sqdmull2.  */
                                               return 108;
                                             }
                                         }
                                                  sqdmull2.  */
                                               return 108;
                                             }
                                         }
-                                      else
-                                        {
-                                          /* 33222222222211111111110000000000
-                                             10987654321098765432109876543210
-                                             xxxxxxxxxx0x1111xxxxxxxx11110xxx
-                                             sqrdmlsh.  */
-                                          return 128;
-                                        }
                                     }
                                 }
                                     }
                                 }
-                            }
-                          else
-                            {
-                              if (((word >> 11) & 0x1) == 0)
+                              else
                                 {
                                 {
-                                  if (((word >> 14) & 0x1) == 0)
+                                  if (((word >> 11) & 0x1) == 0)
                                     {
                                       if (((word >> 12) & 0x1) == 0)
                                         {
                                     {
                                       if (((word >> 12) & 0x1) == 0)
                                         {
@@ -17445,17 +18600,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx100x01xxxxxxxx111100xx
+                                                 xx001111xxxxxxxx10x001xxxxxxxxxx
                                                  movi.  */
                                                  movi.  */
-                                              return 132;
+                                              return 133;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx100x01xxxxxxxx111101xx
+                                                 xx101111xxxxxxxx10x001xxxxxxxxxx
                                                  mvni.  */
                                                  mvni.  */
-                                              return 140;
+                                              return 141;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -17464,189 +18619,255 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx101x01xxxxxxxx111100xx
+                                                 xx001111xxxxxxxx10x101xxxxxxxxxx
                                                  orr.  */
                                                  orr.  */
-                                              return 133;
+                                              return 134;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx101x01xxxxxxxx111101xx
+                                                 xx101111xxxxxxxx10x101xxxxxxxxxx
                                                  bic.  */
                                                  bic.  */
-                                              return 141;
+                                              return 142;
                                             }
                                         }
                                     }
                                   else
                                     {
                                             }
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
+                                      if (((word >> 12) & 0x1) == 0)
                                         {
                                           if (((word >> 29) & 0x1) == 0)
                                             {
                                         {
                                           if (((word >> 29) & 0x1) == 0)
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx10x011xxxxxxxx111100xx
-                                                 movi.  */
-                                              return 134;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0001111xxxxxxxx10x011xxxxxxxxxx
+                                                     rshrn.  */
+                                                  return 376;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1001111xxxxxxxx10x011xxxxxxxxxx
+                                                     rshrn2.  */
+                                                  return 377;
+                                                }
                                             }
                                           else
                                             {
                                             }
                                           else
                                             {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx10x011xxxxxxxx111101xx
-                                                 mvni.  */
-                                              return 142;
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0101111xxxxxxxx10x011xxxxxxxxxx
+                                                     sqrshrun.  */
+                                                  return 400;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1101111xxxxxxxx10x011xxxxxxxxxx
+                                                     sqrshrun2.  */
+                                                  return 401;
+                                                }
                                             }
                                         }
                                       else
                                         {
                                             }
                                         }
                                       else
                                         {
-                                          if (((word >> 12) & 0x1) == 0)
+                                          if (((word >> 29) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 29) & 0x1) == 0)
+                                              if (((word >> 30) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx100111xxxxxxxx111100xx
-                                                     movi.  */
-                                                  return 135;
+                                                     x0001111xxxxxxxx10x111xxxxxxxxxx
+                                                     sqrshrn.  */
+                                                  return 380;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx100111xxxxxxxx111101xx
-                                                     movi.  */
-                                                  return 143;
+                                                     x1001111xxxxxxxx10x111xxxxxxxxxx
+                                                     sqrshrn2.  */
+                                                  return 381;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 29) & 0x1) == 0)
+                                              if (((word >> 30) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx101111xxxxxxxx111100xx
-                                                     fmov.  */
-                                                  return 136;
+                                                     x0101111xxxxxxxx10x111xxxxxxxxxx
+                                                     uqrshrn.  */
+                                                  return 404;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx101111xxxxxxxx111101xx
-                                                     fmov.  */
-                                                  return 145;
+                                                     x1101111xxxxxxxx10x111xxxxxxxxxx
+                                                     uqrshrn2.  */
+                                                  return 405;
                                                 }
                                             }
                                         }
                                     }
                                 }
                                                 }
                                             }
                                         }
                                     }
                                 }
-                              else
+                            }
+                          else
+                            {
+                              if (((word >> 13) & 0x1) == 0)
                                 {
                                 {
-                                  if (((word >> 12) & 0x1) == 0)
+                                  if (((word >> 10) & 0x1) == 0)
                                     {
                                     {
-                                      if (((word >> 29) & 0x1) == 0)
+                                      if (((word >> 12) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
+                                          if (((word >> 29) & 0x1) == 0)
+                                            {
+                                              /* 33222222222211111111110000000000
+                                                 10987654321098765432109876543210
+                                                 xx001111xxxxxxxx1100x0xxxxxxxxxx
+                                                 sqdmulh.  */
+                                              return 109;
+                                            }
+                                          else
+                                            {
+                                              if (((word >> 30) & 0x1) == 0)
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x0101111xxxxxxxx1100x0xxxxxxxxxx
+                                                     fmlsl2.  */
+                                                  return 2018;
+                                                }
+                                              else
+                                                {
+                                                  /* 33222222222211111111110000000000
+                                                     10987654321098765432109876543210
+                                                     x1101111xxxxxxxx1100x0xxxxxxxxxx
+                                                     fmlsl2.  */
+                                                  return 2022;
+                                                }
+                                            }
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 29) & 0x1) == 0)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx110xx1xxxxxxxx1111000x
-                                                 rshrn.  */
-                                              return 373;
+                                                 xx001111xxxxxxxx1101x0xxxxxxxxxx
+                                                 sqrdmulh.  */
+                                              return 110;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx110xx1xxxxxxxx1111001x
-                                                 rshrn2.  */
-                                              return 374;
+                                                 xx101111xxxxxxxx1101x0xxxxxxxxxx
+                                                 sqrdmlah.  */
+                                              return 127;
                                             }
                                         }
                                             }
                                         }
+                                    }
+                                  else
+                                    {
+                                      if (((word >> 29) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xx001111xxxxxxxx110xx1xxxxxxxxxx
+                                             movi.  */
+                                          return 135;
+                                        }
+                                      else
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xx101111xxxxxxxx110xx1xxxxxxxxxx
+                                             mvni.  */
+                                          return 143;
+                                        }
+                                    }
+                                }
+                              else
+                                {
+                                  if (((word >> 12) & 0x1) == 0)
+                                    {
+                                      if (((word >> 29) & 0x1) == 0)
+                                        {
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xx001111xxxxxxxx1110xxxxxxxxxxxx
+                                             movi.  */
+                                          return 136;
+                                        }
                                       else
                                         {
                                       else
                                         {
-                                          if (((word >> 30) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx110xx1xxxxxxxx1111010x
-                                                 sqrshrun.  */
-                                              return 397;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx110xx1xxxxxxxx1111011x
-                                                 sqrshrun2.  */
-                                              return 398;
-                                            }
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xx101111xxxxxxxx1110xxxxxxxxxxxx
+                                             movi.  */
+                                          return 144;
                                         }
                                     }
                                   else
                                     {
                                         }
                                     }
                                   else
                                     {
-                                      if (((word >> 13) & 0x1) == 0)
+                                      if (((word >> 10) & 0x1) == 0)
                                         {
                                         {
-                                          if (((word >> 29) & 0x1) == 0)
+                                          /* 33222222222211111111110000000000
+                                             10987654321098765432109876543210
+                                             xxx01111xxxxxxxx1111x0xxxxxxxxxx
+                                             sqrdmlsh.  */
+                                          return 128;
+                                        }
+                                      else
+                                        {
+                                          if (((word >> 11) & 0x1) == 0)
                                             {
                                             {
-                                              if (((word >> 30) & 0x1) == 0)
+                                              if (((word >> 29) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1110x1xxxxxxxx1111000x
-                                                     sqrshrn.  */
-                                                  return 377;
+                                                     xx001111xxxxxxxx111101xxxxxxxxxx
+                                                     fmov.  */
+                                                  return 137;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1110x1xxxxxxxx1111001x
-                                                     sqrshrn2.  */
-                                                  return 378;
+                                                     xx101111xxxxxxxx111101xxxxxxxxxx
+                                                     fmov.  */
+                                                  return 146;
                                                 }
                                             }
                                           else
                                             {
                                                 }
                                             }
                                           else
                                             {
-                                              if (((word >> 30) & 0x1) == 0)
+                                              if (((word >> 29) & 0x1) == 0)
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1110x1xxxxxxxx1111010x
-                                                     uqrshrn.  */
-                                                  return 401;
+                                                     xx001111xxxxxxxx111111xxxxxxxxxx
+                                                     fmov.  */
+                                                  return 138;
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx1110x1xxxxxxxx1111011x
-                                                     uqrshrn2.  */
-                                                  return 402;
+                                                     xx101111xxxxxxxx111111xxxxxxxxxx
+                                                     fcvtzu.  */
+                                                  return 412;
                                                 }
                                             }
                                         }
                                                 }
                                             }
                                         }
-                                      else
-                                        {
-                                          if (((word >> 29) & 0x1) == 0)
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx1111x1xxxxxxxx111100xx
-                                                 fmov.  */
-                                              return 137;
-                                            }
-                                          else
-                                            {
-                                              /* 33222222222211111111110000000000
-                                                 10987654321098765432109876543210
-                                                 xxxxxxxxxx1111x1xxxxxxxx111101xx
-                                                 fcvtzu.  */
-                                              return 409;
-                                            }
-                                        }
                                     }
                                 }
                             }
                                     }
                                 }
                             }
@@ -17661,17 +18882,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx1xxxxx0xx1111100x
+                                         x0011111xx0xxxxx1xxxxxxxxxxxxxxx
                                          fmsub.  */
                                          fmsub.  */
-                                      return 826;
+                                      return 842;
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxxxxxxx1xxxxx1xx1111100x
+                                         x0011111xx1xxxxx1xxxxxxxxxxxxxxx
                                          fnmsub.  */
                                          fnmsub.  */
-                                      return 830;
+                                      return 846;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -17682,9 +18903,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx0x0xx1xxxxxxxx1111101x
+                                             x1011111xxxxxxxx1xx0x0xxxxxxxxxx
                                              sqdmulh.  */
                                              sqdmulh.  */
-                                          return 419;
+                                          return 422;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -17696,35 +18917,35 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0x1001xxxxxxx01111101x
+                                                         x10111110xxxxxxx1001x0xxxxxxxxxx
                                                          fmul.  */
                                                          fmul.  */
-                                                      return 426;
+                                                      return 429;
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
                                                     }
                                                   else
                                                     {
                                                       /* 33222222222211111111110000000000
                                                          10987654321098765432109876543210
-                                                         xxxxxxxxxx0x1001xxxxxxx11111101x
+                                                         x10111111xxxxxxx1001x0xxxxxxxxxx
                                                          fmul.  */
                                                          fmul.  */
-                                                      return 425;
+                                                      return 428;
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
                                                     }
                                                 }
                                               else
                                                 {
                                                   /* 33222222222211111111110000000000
                                                      10987654321098765432109876543210
-                                                     xxxxxxxxxx0x1011xxxxxxxx1111101x
+                                                     x1011111xxxxxxxx1101x0xxxxxxxxxx
                                                      sqrdmulh.  */
                                                      sqrdmulh.  */
-                                                  return 420;
+                                                  return 423;
                                                 }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                                 }
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0x11x1xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx1x11x0xxxxxxxxxx
                                                  sqdmull.  */
                                                  sqdmull.  */
-                                              return 418;
+                                              return 421;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -17736,17 +18957,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx100xx1xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx1xx001xxxxxxxxxx
                                                  scvtf.  */
                                                  scvtf.  */
-                                              return 589;
+                                              return 592;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx101xx1xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx1xx101xxxxxxxxxx
                                                  sqshrn.  */
                                                  sqshrn.  */
-                                              return 587;
+                                              return 590;
                                             }
                                         }
                                       else
                                             }
                                         }
                                       else
@@ -17755,17 +18976,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11x0x1xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx1x0x11xxxxxxxxxx
                                                  sqrshrn.  */
                                                  sqrshrn.  */
-                                              return 588;
+                                              return 591;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx11x1x1xxxxxxxx1111101x
+                                                 x1011111xxxxxxxx1x1x11xxxxxxxxxx
                                                  fcvtzs.  */
                                                  fcvtzs.  */
-                                              return 591;
+                                              return 594;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -17783,35 +19004,35 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0xx001xxxxxxx0111111xx
+                                                 xx1111110xxxxxxx100xx0xxxxxxxxxx
                                                  fmulx.  */
                                                  fmulx.  */
-                                              return 428;
+                                              return 431;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx0xx001xxxxxxx1111111xx
+                                                 xx1111111xxxxxxx100xx0xxxxxxxxxx
                                                  fmulx.  */
                                                  fmulx.  */
-                                              return 427;
+                                              return 430;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx0xx011xxxxxxxx111111xx
+                                             xx111111xxxxxxxx110xx0xxxxxxxxxx
                                              sqrdmlah.  */
                                              sqrdmlah.  */
-                                          return 429;
+                                          return 432;
                                         }
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
                                         }
                                     }
                                   else
                                     {
                                       /* 33222222222211111111110000000000
                                          10987654321098765432109876543210
-                                         xxxxxxxxxx0xx1x1xxxxxxxx111111xx
+                                         xx111111xxxxxxxx1x1xx0xxxxxxxxxx
                                          sqrdmlsh.  */
                                          sqrdmlsh.  */
-                                      return 430;
+                                      return 433;
                                     }
                                 }
                               else
                                     }
                                 }
                               else
@@ -17824,26 +19045,26 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1000x1xxxxxxxx111111xx
+                                                 xx111111xxxxxxxx1x0001xxxxxxxxxx
                                                  sqshrun.  */
                                                  sqshrun.  */
-                                              return 601;
+                                              return 604;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1001x1xxxxxxxx111111xx
+                                                 xx111111xxxxxxxx1x1001xxxxxxxxxx
                                                  ucvtf.  */
                                                  ucvtf.  */
-                                              return 605;
+                                              return 608;
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                             }
                                         }
                                       else
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx101xx1xxxxxxxx111111xx
+                                             xx111111xxxxxxxx1xx101xxxxxxxxxx
                                              uqshrn.  */
                                              uqshrn.  */
-                                          return 603;
+                                          return 606;
                                         }
                                     }
                                   else
                                         }
                                     }
                                   else
@@ -17852,9 +19073,9 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
                                         {
                                           /* 33222222222211111111110000000000
                                              10987654321098765432109876543210
-                                             xxxxxxxxxx110xx1xxxxxxxx111111xx
+                                             xx111111xxxxxxxx1xx011xxxxxxxxxx
                                              sqrshrun.  */
                                              sqrshrun.  */
-                                          return 602;
+                                          return 605;
                                         }
                                       else
                                         {
                                         }
                                       else
                                         {
@@ -17862,17 +19083,17 @@ aarch64_opcode_lookup_1 (uint32_t word)
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1110x1xxxxxxxx111111xx
+                                                 xx111111xxxxxxxx1x0111xxxxxxxxxx
                                                  uqrshrn.  */
                                                  uqrshrn.  */
-                                              return 604;
+                                              return 607;
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
                                             }
                                           else
                                             {
                                               /* 33222222222211111111110000000000
                                                  10987654321098765432109876543210
-                                                 xxxxxxxxxx1111x1xxxxxxxx111111xx
+                                                 xx111111xxxxxxxx1x1111xxxxxxxxxx
                                                  fcvtzu.  */
                                                  fcvtzu.  */
-                                              return 607;
+                                              return 610;
                                             }
                                         }
                                     }
                                             }
                                         }
                                     }
@@ -17903,208 +19124,211 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
   int value;
   switch (key)
     {
   int value;
   switch (key)
     {
-    case 920: value = 924; break;      /* stnp --> stp.  */
-    case 924: return NULL;             /* stp --> NULL.  */
-    case 918: value = 919; break;      /* stllrb --> stllrh.  */
-    case 919: return NULL;             /* stllrh --> NULL.  */
-    case 921: value = 925; break;      /* ldnp --> ldp.  */
-    case 925: return NULL;             /* ldp --> NULL.  */
-    case 1136: value = 1137; break;    /* msr --> hint.  */
-    case 1137: value = 1151; break;    /* hint --> clrex.  */
-    case 1151: value = 1152; break;    /* clrex --> dsb.  */
-    case 1152: value = 1153; break;    /* dsb --> dmb.  */
-    case 1153: value = 1154; break;    /* dmb --> isb.  */
-    case 1154: value = 1155; break;    /* isb --> sys.  */
-    case 1155: value = 1160; break;    /* sys --> msr.  */
-    case 1160: return NULL;            /* msr --> NULL.  */
-    case 1161: value = 1162; break;    /* sysl --> mrs.  */
-    case 1162: return NULL;            /* mrs --> NULL.  */
-    case 431: value = 432; break;      /* st4 --> st1.  */
-    case 432: value = 433; break;      /* st1 --> st2.  */
-    case 433: value = 434; break;      /* st2 --> st3.  */
-    case 434: return NULL;             /* st3 --> NULL.  */
-    case 439: value = 440; break;      /* st4 --> st1.  */
-    case 440: value = 441; break;      /* st1 --> st2.  */
-    case 441: value = 442; break;      /* st2 --> st3.  */
-    case 442: return NULL;             /* st3 --> NULL.  */
-    case 435: value = 436; break;      /* ld4 --> ld1.  */
-    case 436: value = 437; break;      /* ld1 --> ld2.  */
-    case 437: value = 438; break;      /* ld2 --> ld3.  */
-    case 438: return NULL;             /* ld3 --> NULL.  */
-    case 451: value = 453; break;      /* ld1 --> ld1r.  */
-    case 453: return NULL;             /* ld1r --> NULL.  */
-    case 455: value = 457; break;      /* ld2 --> ld2r.  */
-    case 457: return NULL;             /* ld2r --> NULL.  */
-    case 452: value = 454; break;      /* ld3 --> ld3r.  */
-    case 454: return NULL;             /* ld3r --> NULL.  */
-    case 456: value = 458; break;      /* ld4 --> ld4r.  */
-    case 458: return NULL;             /* ld4r --> NULL.  */
-    case 443: value = 444; break;      /* ld4 --> ld1.  */
-    case 444: value = 445; break;      /* ld1 --> ld2.  */
-    case 445: value = 446; break;      /* ld2 --> ld3.  */
-    case 446: return NULL;             /* ld3 --> NULL.  */
-    case 463: value = 465; break;      /* ld1 --> ld1r.  */
-    case 465: return NULL;             /* ld1r --> NULL.  */
-    case 464: value = 466; break;      /* ld3 --> ld3r.  */
-    case 466: return NULL;             /* ld3r --> NULL.  */
-    case 467: value = 469; break;      /* ld2 --> ld2r.  */
-    case 469: return NULL;             /* ld2r --> NULL.  */
-    case 468: value = 470; break;      /* ld4 --> ld4r.  */
-    case 470: return NULL;             /* ld4r --> NULL.  */
-    case 737: value = 738; break;      /* fcvtzs --> fcvtzs.  */
-    case 738: return NULL;             /* fcvtzs --> NULL.  */
-    case 733: value = 734; break;      /* scvtf --> scvtf.  */
-    case 734: return NULL;             /* scvtf --> NULL.  */
-    case 739: value = 740; break;      /* fcvtzu --> fcvtzu.  */
-    case 740: return NULL;             /* fcvtzu --> NULL.  */
-    case 735: value = 736; break;      /* ucvtf --> ucvtf.  */
-    case 736: return NULL;             /* ucvtf --> NULL.  */
-    case 741: value = 742; break;      /* fcvtns --> fcvtns.  */
-    case 742: return NULL;             /* fcvtns --> NULL.  */
-    case 761: value = 762; break;      /* fcvtms --> fcvtms.  */
-    case 762: return NULL;             /* fcvtms --> NULL.  */
-    case 757: value = 758; break;      /* fcvtps --> fcvtps.  */
-    case 758: return NULL;             /* fcvtps --> NULL.  */
-    case 765: value = 766; break;      /* fcvtzs --> fcvtzs.  */
-    case 766: return NULL;             /* fcvtzs --> NULL.  */
-    case 749: value = 750; break;      /* fcvtas --> fcvtas.  */
-    case 750: return NULL;             /* fcvtas --> NULL.  */
-    case 745: value = 746; break;      /* scvtf --> scvtf.  */
-    case 746: return NULL;             /* scvtf --> NULL.  */
-    case 753: value = 754; break;      /* fmov --> fmov.  */
-    case 754: return NULL;             /* fmov --> NULL.  */
-    case 743: value = 744; break;      /* fcvtnu --> fcvtnu.  */
-    case 744: return NULL;             /* fcvtnu --> NULL.  */
-    case 763: value = 764; break;      /* fcvtmu --> fcvtmu.  */
-    case 764: return NULL;             /* fcvtmu --> NULL.  */
-    case 759: value = 760; break;      /* fcvtpu --> fcvtpu.  */
-    case 760: return NULL;             /* fcvtpu --> NULL.  */
-    case 767: value = 768; break;      /* fcvtzu --> fcvtzu.  */
-    case 768: return NULL;             /* fcvtzu --> NULL.  */
-    case 751: value = 752; break;      /* fcvtau --> fcvtau.  */
-    case 752: return NULL;             /* fcvtau --> NULL.  */
-    case 747: value = 748; break;      /* ucvtf --> ucvtf.  */
-    case 748: return NULL;             /* ucvtf --> NULL.  */
-    case 755: value = 756; break;      /* fmov --> fmov.  */
-    case 756: return NULL;             /* fmov --> NULL.  */
-    case 783: value = 784; break;      /* fmov --> fmov.  */
-    case 784: return NULL;             /* fmov --> NULL.  */
-    case 792: value = 793; break;      /* frintn --> frintn.  */
-    case 793: return NULL;             /* frintn --> NULL.  */
-    case 787: value = 788; break;      /* fneg --> fneg.  */
-    case 788: return NULL;             /* fneg --> NULL.  */
-    case 796: value = 797; break;      /* frintm --> frintm.  */
-    case 797: return NULL;             /* frintm --> NULL.  */
-    case 785: value = 786; break;      /* fabs --> fabs.  */
-    case 786: return NULL;             /* fabs --> NULL.  */
-    case 794: value = 795; break;      /* frintp --> frintp.  */
-    case 795: return NULL;             /* frintp --> NULL.  */
-    case 789: value = 790; break;      /* fsqrt --> fsqrt.  */
-    case 790: return NULL;             /* fsqrt --> NULL.  */
-    case 798: value = 799; break;      /* frintz --> frintz.  */
-    case 799: return NULL;             /* frintz --> NULL.  */
-    case 800: value = 801; break;      /* frinta --> frinta.  */
-    case 801: return NULL;             /* frinta --> NULL.  */
-    case 802: value = 803; break;      /* frintx --> frintx.  */
-    case 803: return NULL;             /* frintx --> NULL.  */
-    case 804: value = 805; break;      /* frinti --> frinti.  */
-    case 805: return NULL;             /* frinti --> NULL.  */
-    case 775: value = 776; break;      /* fcmp --> fcmp.  */
-    case 776: return NULL;             /* fcmp --> NULL.  */
-    case 777: value = 778; break;      /* fcmpe --> fcmpe.  */
-    case 778: return NULL;             /* fcmpe --> NULL.  */
-    case 779: value = 780; break;      /* fcmp --> fcmp.  */
-    case 780: return NULL;             /* fcmp --> NULL.  */
-    case 781: value = 782; break;      /* fcmpe --> fcmpe.  */
-    case 782: return NULL;             /* fcmpe --> NULL.  */
-    case 832: value = 833; break;      /* fmov --> fmov.  */
-    case 833: return NULL;             /* fmov --> NULL.  */
-    case 806: value = 807; break;      /* fmul --> fmul.  */
-    case 807: return NULL;             /* fmul --> NULL.  */
-    case 822: value = 823; break;      /* fnmul --> fnmul.  */
-    case 823: return NULL;             /* fnmul --> NULL.  */
-    case 814: value = 815; break;      /* fmax --> fmax.  */
-    case 815: return NULL;             /* fmax --> NULL.  */
-    case 810: value = 811; break;      /* fadd --> fadd.  */
-    case 811: return NULL;             /* fadd --> NULL.  */
-    case 818: value = 819; break;      /* fmaxnm --> fmaxnm.  */
-    case 819: return NULL;             /* fmaxnm --> NULL.  */
-    case 808: value = 809; break;      /* fdiv --> fdiv.  */
-    case 809: return NULL;             /* fdiv --> NULL.  */
-    case 816: value = 817; break;      /* fmin --> fmin.  */
-    case 817: return NULL;             /* fmin --> NULL.  */
-    case 812: value = 813; break;      /* fsub --> fsub.  */
-    case 813: return NULL;             /* fsub --> NULL.  */
-    case 820: value = 821; break;      /* fminnm --> fminnm.  */
-    case 821: return NULL;             /* fminnm --> NULL.  */
-    case 771: value = 772; break;      /* fccmp --> fccmp.  */
-    case 772: return NULL;             /* fccmp --> NULL.  */
-    case 773: value = 774; break;      /* fccmpe --> fccmpe.  */
-    case 774: return NULL;             /* fccmpe --> NULL.  */
-    case 834: value = 835; break;      /* fcsel --> fcsel.  */
-    case 835: return NULL;             /* fcsel --> NULL.  */
-    case 130: value = 365; break;      /* movi --> sshr.  */
-    case 365: value = 367; break;      /* sshr --> srshr.  */
-    case 367: return NULL;             /* srshr --> NULL.  */
-    case 138: value = 387; break;      /* mvni --> ushr.  */
-    case 387: value = 389; break;      /* ushr --> urshr.  */
-    case 389: value = 391; break;      /* urshr --> sri.  */
-    case 391: value = 393; break;      /* sri --> sqshlu.  */
-    case 393: return NULL;             /* sqshlu --> NULL.  */
-    case 131: value = 366; break;      /* orr --> ssra.  */
-    case 366: value = 368; break;      /* ssra --> srsra.  */
-    case 368: value = 369; break;      /* srsra --> shl.  */
-    case 369: value = 370; break;      /* shl --> sqshl.  */
-    case 370: return NULL;             /* sqshl --> NULL.  */
-    case 139: value = 388; break;      /* bic --> usra.  */
-    case 388: value = 390; break;      /* usra --> ursra.  */
-    case 390: value = 392; break;      /* ursra --> sli.  */
-    case 392: value = 394; break;      /* sli --> uqshl.  */
-    case 394: return NULL;             /* uqshl --> NULL.  */
-    case 824: value = 825; break;      /* fmadd --> fmadd.  */
-    case 825: return NULL;             /* fmadd --> NULL.  */
-    case 828: value = 829; break;      /* fnmadd --> fnmadd.  */
-    case 829: return NULL;             /* fnmadd --> NULL.  */
-    case 132: value = 371; break;      /* movi --> shrn.  */
-    case 371: value = 372; break;      /* shrn --> shrn2.  */
-    case 372: value = 379; break;      /* shrn2 --> sshll.  */
-    case 379: value = 381; break;      /* sshll --> sshll2.  */
-    case 381: return NULL;             /* sshll2 --> NULL.  */
-    case 140: value = 395; break;      /* mvni --> sqshrun.  */
-    case 395: value = 396; break;      /* sqshrun --> sqshrun2.  */
-    case 396: value = 403; break;      /* sqshrun2 --> ushll.  */
-    case 403: value = 405; break;      /* ushll --> ushll2.  */
-    case 405: return NULL;             /* ushll2 --> NULL.  */
-    case 133: value = 375; break;      /* orr --> sqshrn.  */
-    case 375: value = 376; break;      /* sqshrn --> sqshrn2.  */
-    case 376: return NULL;             /* sqshrn2 --> NULL.  */
-    case 141: value = 399; break;      /* bic --> uqshrn.  */
-    case 399: value = 400; break;      /* uqshrn --> uqshrn2.  */
-    case 400: return NULL;             /* uqshrn2 --> NULL.  */
-    case 135: value = 383; break;      /* movi --> scvtf.  */
-    case 383: value = 384; break;      /* scvtf --> scvtf.  */
-    case 384: return NULL;             /* scvtf --> NULL.  */
-    case 143: value = 144; break;      /* movi --> movi.  */
-    case 144: value = 407; break;      /* movi --> ucvtf.  */
-    case 407: value = 408; break;      /* ucvtf --> ucvtf.  */
-    case 408: return NULL;             /* ucvtf --> NULL.  */
-    case 137: value = 385; break;      /* fmov --> fcvtzs.  */
-    case 385: value = 386; break;      /* fcvtzs --> fcvtzs.  */
-    case 386: return NULL;             /* fcvtzs --> NULL.  */
-    case 409: value = 410; break;      /* fcvtzu --> fcvtzu.  */
-    case 410: return NULL;             /* fcvtzu --> NULL.  */
-    case 826: value = 827; break;      /* fmsub --> fmsub.  */
-    case 827: return NULL;             /* fmsub --> NULL.  */
-    case 830: value = 831; break;      /* fnmsub --> fnmsub.  */
-    case 831: return NULL;             /* fnmsub --> NULL.  */
-    case 589: value = 590; break;      /* scvtf --> scvtf.  */
-    case 590: return NULL;             /* scvtf --> NULL.  */
-    case 591: value = 592; break;      /* fcvtzs --> fcvtzs.  */
-    case 592: return NULL;             /* fcvtzs --> NULL.  */
-    case 605: value = 606; break;      /* ucvtf --> ucvtf.  */
-    case 606: return NULL;             /* ucvtf --> NULL.  */
-    case 607: value = 608; break;      /* fcvtzu --> fcvtzu.  */
-    case 608: return NULL;             /* fcvtzu --> NULL.  */
+    case 941: value = 945; break;      /* stnp --> stp.  */
+    case 945: return NULL;             /* stp --> NULL.  */
+    case 939: value = 940; break;      /* stllrb --> stllrh.  */
+    case 940: return NULL;             /* stllrh --> NULL.  */
+    case 942: value = 946; break;      /* ldnp --> ldp.  */
+    case 946: return NULL;             /* ldp --> NULL.  */
+    case 1157: value = 1158; break;    /* msr --> hint.  */
+    case 1158: value = 1172; break;    /* hint --> clrex.  */
+    case 1172: value = 1173; break;    /* clrex --> dsb.  */
+    case 1173: value = 1174; break;    /* dsb --> dmb.  */
+    case 1174: value = 1175; break;    /* dmb --> isb.  */
+    case 1175: value = 1176; break;    /* isb --> sys.  */
+    case 1176: value = 1181; break;    /* sys --> msr.  */
+    case 1181: value = 2023; break;    /* msr --> cfinv.  */
+    case 2023: return NULL;            /* cfinv --> NULL.  */
+    case 1182: value = 1183; break;    /* sysl --> mrs.  */
+    case 1183: return NULL;            /* mrs --> NULL.  */
+    case 434: value = 435; break;      /* st4 --> st1.  */
+    case 435: value = 436; break;      /* st1 --> st2.  */
+    case 436: value = 437; break;      /* st2 --> st3.  */
+    case 437: return NULL;             /* st3 --> NULL.  */
+    case 442: value = 443; break;      /* st4 --> st1.  */
+    case 443: value = 444; break;      /* st1 --> st2.  */
+    case 444: value = 445; break;      /* st2 --> st3.  */
+    case 445: return NULL;             /* st3 --> NULL.  */
+    case 438: value = 439; break;      /* ld4 --> ld1.  */
+    case 439: value = 440; break;      /* ld1 --> ld2.  */
+    case 440: value = 441; break;      /* ld2 --> ld3.  */
+    case 441: return NULL;             /* ld3 --> NULL.  */
+    case 454: value = 456; break;      /* ld1 --> ld1r.  */
+    case 456: return NULL;             /* ld1r --> NULL.  */
+    case 458: value = 460; break;      /* ld2 --> ld2r.  */
+    case 460: return NULL;             /* ld2r --> NULL.  */
+    case 455: value = 457; break;      /* ld3 --> ld3r.  */
+    case 457: return NULL;             /* ld3r --> NULL.  */
+    case 459: value = 461; break;      /* ld4 --> ld4r.  */
+    case 461: return NULL;             /* ld4r --> NULL.  */
+    case 446: value = 447; break;      /* ld4 --> ld1.  */
+    case 447: value = 448; break;      /* ld1 --> ld2.  */
+    case 448: value = 449; break;      /* ld2 --> ld3.  */
+    case 449: return NULL;             /* ld3 --> NULL.  */
+    case 466: value = 468; break;      /* ld1 --> ld1r.  */
+    case 468: return NULL;             /* ld1r --> NULL.  */
+    case 467: value = 469; break;      /* ld3 --> ld3r.  */
+    case 469: return NULL;             /* ld3r --> NULL.  */
+    case 470: value = 472; break;      /* ld2 --> ld2r.  */
+    case 472: return NULL;             /* ld2r --> NULL.  */
+    case 471: value = 473; break;      /* ld4 --> ld4r.  */
+    case 473: return NULL;             /* ld4r --> NULL.  */
+    case 752: value = 753; break;      /* fcvtzs --> fcvtzs.  */
+    case 753: return NULL;             /* fcvtzs --> NULL.  */
+    case 748: value = 749; break;      /* scvtf --> scvtf.  */
+    case 749: return NULL;             /* scvtf --> NULL.  */
+    case 754: value = 755; break;      /* fcvtzu --> fcvtzu.  */
+    case 755: return NULL;             /* fcvtzu --> NULL.  */
+    case 750: value = 751; break;      /* ucvtf --> ucvtf.  */
+    case 751: return NULL;             /* ucvtf --> NULL.  */
+    case 756: value = 757; break;      /* fcvtns --> fcvtns.  */
+    case 757: return NULL;             /* fcvtns --> NULL.  */
+    case 776: value = 777; break;      /* fcvtms --> fcvtms.  */
+    case 777: return NULL;             /* fcvtms --> NULL.  */
+    case 772: value = 773; break;      /* fcvtps --> fcvtps.  */
+    case 773: return NULL;             /* fcvtps --> NULL.  */
+    case 780: value = 781; break;      /* fcvtzs --> fcvtzs.  */
+    case 781: return NULL;             /* fcvtzs --> NULL.  */
+    case 764: value = 765; break;      /* fcvtas --> fcvtas.  */
+    case 765: return NULL;             /* fcvtas --> NULL.  */
+    case 760: value = 761; break;      /* scvtf --> scvtf.  */
+    case 761: return NULL;             /* scvtf --> NULL.  */
+    case 768: value = 769; break;      /* fmov --> fmov.  */
+    case 769: return NULL;             /* fmov --> NULL.  */
+    case 758: value = 759; break;      /* fcvtnu --> fcvtnu.  */
+    case 759: return NULL;             /* fcvtnu --> NULL.  */
+    case 778: value = 779; break;      /* fcvtmu --> fcvtmu.  */
+    case 779: return NULL;             /* fcvtmu --> NULL.  */
+    case 774: value = 775; break;      /* fcvtpu --> fcvtpu.  */
+    case 775: return NULL;             /* fcvtpu --> NULL.  */
+    case 782: value = 783; break;      /* fcvtzu --> fcvtzu.  */
+    case 783: return NULL;             /* fcvtzu --> NULL.  */
+    case 766: value = 767; break;      /* fcvtau --> fcvtau.  */
+    case 767: return NULL;             /* fcvtau --> NULL.  */
+    case 762: value = 763; break;      /* ucvtf --> ucvtf.  */
+    case 763: return NULL;             /* ucvtf --> NULL.  */
+    case 770: value = 771; break;      /* fmov --> fmov.  */
+    case 771: return NULL;             /* fmov --> NULL.  */
+    case 799: value = 800; break;      /* fmov --> fmov.  */
+    case 800: return NULL;             /* fmov --> NULL.  */
+    case 808: value = 809; break;      /* frintn --> frintn.  */
+    case 809: return NULL;             /* frintn --> NULL.  */
+    case 803: value = 804; break;      /* fneg --> fneg.  */
+    case 804: return NULL;             /* fneg --> NULL.  */
+    case 812: value = 813; break;      /* frintm --> frintm.  */
+    case 813: return NULL;             /* frintm --> NULL.  */
+    case 801: value = 802; break;      /* fabs --> fabs.  */
+    case 802: return NULL;             /* fabs --> NULL.  */
+    case 810: value = 811; break;      /* frintp --> frintp.  */
+    case 811: return NULL;             /* frintp --> NULL.  */
+    case 805: value = 806; break;      /* fsqrt --> fsqrt.  */
+    case 806: return NULL;             /* fsqrt --> NULL.  */
+    case 814: value = 815; break;      /* frintz --> frintz.  */
+    case 815: return NULL;             /* frintz --> NULL.  */
+    case 816: value = 817; break;      /* frinta --> frinta.  */
+    case 817: return NULL;             /* frinta --> NULL.  */
+    case 818: value = 819; break;      /* frintx --> frintx.  */
+    case 819: return NULL;             /* frintx --> NULL.  */
+    case 820: value = 821; break;      /* frinti --> frinti.  */
+    case 821: return NULL;             /* frinti --> NULL.  */
+    case 791: value = 792; break;      /* fcmp --> fcmp.  */
+    case 792: return NULL;             /* fcmp --> NULL.  */
+    case 793: value = 794; break;      /* fcmpe --> fcmpe.  */
+    case 794: return NULL;             /* fcmpe --> NULL.  */
+    case 795: value = 796; break;      /* fcmp --> fcmp.  */
+    case 796: return NULL;             /* fcmp --> NULL.  */
+    case 797: value = 798; break;      /* fcmpe --> fcmpe.  */
+    case 798: return NULL;             /* fcmpe --> NULL.  */
+    case 848: value = 849; break;      /* fmov --> fmov.  */
+    case 849: return NULL;             /* fmov --> NULL.  */
+    case 822: value = 823; break;      /* fmul --> fmul.  */
+    case 823: return NULL;             /* fmul --> NULL.  */
+    case 838: value = 839; break;      /* fnmul --> fnmul.  */
+    case 839: return NULL;             /* fnmul --> NULL.  */
+    case 830: value = 831; break;      /* fmax --> fmax.  */
+    case 831: return NULL;             /* fmax --> NULL.  */
+    case 826: value = 827; break;      /* fadd --> fadd.  */
+    case 827: return NULL;             /* fadd --> NULL.  */
+    case 834: value = 835; break;      /* fmaxnm --> fmaxnm.  */
+    case 835: return NULL;             /* fmaxnm --> NULL.  */
+    case 824: value = 825; break;      /* fdiv --> fdiv.  */
+    case 825: return NULL;             /* fdiv --> NULL.  */
+    case 832: value = 833; break;      /* fmin --> fmin.  */
+    case 833: return NULL;             /* fmin --> NULL.  */
+    case 828: value = 829; break;      /* fsub --> fsub.  */
+    case 829: return NULL;             /* fsub --> NULL.  */
+    case 836: value = 837; break;      /* fminnm --> fminnm.  */
+    case 837: return NULL;             /* fminnm --> NULL.  */
+    case 787: value = 788; break;      /* fccmp --> fccmp.  */
+    case 788: return NULL;             /* fccmp --> NULL.  */
+    case 789: value = 790; break;      /* fccmpe --> fccmpe.  */
+    case 790: return NULL;             /* fccmpe --> NULL.  */
+    case 850: value = 851; break;      /* fcsel --> fcsel.  */
+    case 851: return NULL;             /* fcsel --> NULL.  */
+    case 131: value = 368; break;      /* movi --> sshr.  */
+    case 368: value = 370; break;      /* sshr --> srshr.  */
+    case 370: return NULL;             /* srshr --> NULL.  */
+    case 139: value = 390; break;      /* mvni --> ushr.  */
+    case 390: value = 392; break;      /* ushr --> urshr.  */
+    case 392: value = 394; break;      /* urshr --> sri.  */
+    case 394: value = 396; break;      /* sri --> sqshlu.  */
+    case 396: return NULL;             /* sqshlu --> NULL.  */
+    case 132: value = 369; break;      /* orr --> ssra.  */
+    case 369: value = 371; break;      /* ssra --> srsra.  */
+    case 371: value = 372; break;      /* srsra --> shl.  */
+    case 372: value = 373; break;      /* shl --> sqshl.  */
+    case 373: return NULL;             /* sqshl --> NULL.  */
+    case 140: value = 391; break;      /* bic --> usra.  */
+    case 391: value = 393; break;      /* usra --> ursra.  */
+    case 393: value = 395; break;      /* ursra --> sli.  */
+    case 395: value = 397; break;      /* sli --> uqshl.  */
+    case 397: return NULL;             /* uqshl --> NULL.  */
+    case 840: value = 841; break;      /* fmadd --> fmadd.  */
+    case 841: return NULL;             /* fmadd --> NULL.  */
+    case 844: value = 845; break;      /* fnmadd --> fnmadd.  */
+    case 845: return NULL;             /* fnmadd --> NULL.  */
+    case 133: value = 374; break;      /* movi --> shrn.  */
+    case 374: value = 375; break;      /* shrn --> shrn2.  */
+    case 375: value = 382; break;      /* shrn2 --> sshll.  */
+    case 382: value = 384; break;      /* sshll --> sshll2.  */
+    case 384: return NULL;             /* sshll2 --> NULL.  */
+    case 141: value = 398; break;      /* mvni --> sqshrun.  */
+    case 398: value = 399; break;      /* sqshrun --> sqshrun2.  */
+    case 399: value = 406; break;      /* sqshrun2 --> ushll.  */
+    case 406: value = 408; break;      /* ushll --> ushll2.  */
+    case 408: return NULL;             /* ushll2 --> NULL.  */
+    case 134: value = 378; break;      /* orr --> sqshrn.  */
+    case 378: value = 379; break;      /* sqshrn --> sqshrn2.  */
+    case 379: return NULL;             /* sqshrn2 --> NULL.  */
+    case 142: value = 402; break;      /* bic --> uqshrn.  */
+    case 402: value = 403; break;      /* uqshrn --> uqshrn2.  */
+    case 403: return NULL;             /* uqshrn2 --> NULL.  */
+    case 136: value = 386; break;      /* movi --> scvtf.  */
+    case 386: value = 387; break;      /* scvtf --> scvtf.  */
+    case 387: value = 1989; break;     /* scvtf --> sdot.  */
+    case 1989: return NULL;            /* sdot --> NULL.  */
+    case 144: value = 145; break;      /* movi --> movi.  */
+    case 145: value = 410; break;      /* movi --> ucvtf.  */
+    case 410: value = 411; break;      /* ucvtf --> ucvtf.  */
+    case 411: value = 1988; break;     /* ucvtf --> udot.  */
+    case 1988: return NULL;            /* udot --> NULL.  */
+    case 138: value = 388; break;      /* fmov --> fcvtzs.  */
+    case 388: value = 389; break;      /* fcvtzs --> fcvtzs.  */
+    case 389: return NULL;             /* fcvtzs --> NULL.  */
+    case 412: value = 413; break;      /* fcvtzu --> fcvtzu.  */
+    case 413: return NULL;             /* fcvtzu --> NULL.  */
+    case 842: value = 843; break;      /* fmsub --> fmsub.  */
+    case 843: return NULL;             /* fmsub --> NULL.  */
+    case 846: value = 847; break;      /* fnmsub --> fnmsub.  */
+    case 847: return NULL;             /* fnmsub --> NULL.  */
+    case 592: value = 593; break;      /* scvtf --> scvtf.  */
+    case 593: return NULL;             /* scvtf --> NULL.  */
+    case 594: value = 595; break;      /* fcvtzs --> fcvtzs.  */
+    case 595: return NULL;             /* fcvtzs --> NULL.  */
+    case 608: value = 609; break;      /* ucvtf --> ucvtf.  */
+    case 609: return NULL;             /* ucvtf --> NULL.  */
+    case 610: value = 611; break;      /* fcvtzu --> fcvtzu.  */
+    case 611: return NULL;             /* fcvtzu --> NULL.  */
     default: return NULL;
     }
 
     default: return NULL;
     }
 
@@ -18129,121 +19353,121 @@ aarch64_find_alias_opcode (const aarch64_opcode *opcode)
     case 20: value = 21; break;        /* adds --> cmn.  */
     case 22: value = 23; break;        /* sub --> neg.  */
     case 24: value = 26; break;        /* subs --> negs.  */
     case 20: value = 21; break;        /* adds --> cmn.  */
     case 22: value = 23; break;        /* sub --> neg.  */
     case 24: value = 26; break;        /* subs --> negs.  */
-    case 149: value = 150; break;      /* umov --> mov.  */
-    case 151: value = 152; break;      /* ins --> mov.  */
-    case 153: value = 154; break;      /* ins --> mov.  */
-    case 235: value = 236; break;      /* not --> mvn.  */
-    case 310: value = 311; break;      /* orr --> mov.  */
-    case 379: value = 380; break;      /* sshll --> sxtl.  */
-    case 381: value = 382; break;      /* sshll2 --> sxtl2.  */
-    case 403: value = 404; break;      /* ushll --> uxtl.  */
-    case 405: value = 406; break;      /* ushll2 --> uxtl2.  */
-    case 526: value = 527; break;      /* dup --> mov.  */
-    case 609: value = 614; break;      /* sbfm --> sxtw.  */
-    case 616: value = 618; break;      /* bfm --> bfc.  */
-    case 620: value = 624; break;      /* ubfm --> uxth.  */
-    case 642: value = 644; break;      /* csinc --> cset.  */
-    case 645: value = 647; break;      /* csinv --> csetm.  */
-    case 648: value = 649; break;      /* csneg --> cneg.  */
-    case 667: value = 667; break;      /* rev --> rev.  */
-    case 692: value = 693; break;      /* lslv --> lsl.  */
-    case 694: value = 695; break;      /* lsrv --> lsr.  */
-    case 696: value = 697; break;      /* asrv --> asr.  */
-    case 698: value = 699; break;      /* rorv --> ror.  */
-    case 709: value = 710; break;      /* madd --> mul.  */
-    case 711: value = 712; break;      /* msub --> mneg.  */
-    case 713: value = 714; break;      /* smaddl --> smull.  */
-    case 715: value = 716; break;      /* smsubl --> smnegl.  */
-    case 718: value = 719; break;      /* umaddl --> umull.  */
-    case 720: value = 721; break;      /* umsubl --> umnegl.  */
-    case 731: value = 732; break;      /* extr --> ror.  */
-    case 938: value = 939; break;      /* and --> bic.  */
-    case 940: value = 941; break;      /* orr --> mov.  */
-    case 943: value = 944; break;      /* ands --> tst.  */
-    case 947: value = 949; break;      /* orr --> uxtw.  */
-    case 950: value = 951; break;      /* orn --> mvn.  */
-    case 954: value = 955; break;      /* ands --> tst.  */
-    case 985: value = 1081; break;     /* ldaddb --> staddb.  */
-    case 986: value = 1082; break;     /* ldaddh --> staddh.  */
-    case 987: value = 1083; break;     /* ldadd --> stadd.  */
-    case 989: value = 1084; break;     /* ldaddlb --> staddlb.  */
-    case 992: value = 1085; break;     /* ldaddlh --> staddlh.  */
-    case 995: value = 1086; break;     /* ldaddl --> staddl.  */
-    case 997: value = 1087; break;     /* ldclrb --> stclrb.  */
-    case 998: value = 1088; break;     /* ldclrh --> stclrh.  */
-    case 999: value = 1089; break;     /* ldclr --> stclr.  */
-    case 1001: value = 1090; break;    /* ldclrlb --> stclrlb.  */
-    case 1004: value = 1091; break;    /* ldclrlh --> stclrlh.  */
-    case 1007: value = 1092; break;    /* ldclrl --> stclrl.  */
-    case 1009: value = 1093; break;    /* ldeorb --> steorb.  */
-    case 1010: value = 1094; break;    /* ldeorh --> steorh.  */
-    case 1011: value = 1095; break;    /* ldeor --> steor.  */
-    case 1013: value = 1096; break;    /* ldeorlb --> steorlb.  */
-    case 1016: value = 1097; break;    /* ldeorlh --> steorlh.  */
-    case 1019: value = 1098; break;    /* ldeorl --> steorl.  */
-    case 1021: value = 1099; break;    /* ldsetb --> stsetb.  */
-    case 1022: value = 1100; break;    /* ldseth --> stseth.  */
-    case 1023: value = 1101; break;    /* ldset --> stset.  */
-    case 1025: value = 1102; break;    /* ldsetlb --> stsetlb.  */
-    case 1028: value = 1103; break;    /* ldsetlh --> stsetlh.  */
-    case 1031: value = 1104; break;    /* ldsetl --> stsetl.  */
-    case 1033: value = 1105; break;    /* ldsmaxb --> stsmaxb.  */
-    case 1034: value = 1106; break;    /* ldsmaxh --> stsmaxh.  */
-    case 1035: value = 1107; break;    /* ldsmax --> stsmax.  */
-    case 1037: value = 1108; break;    /* ldsmaxlb --> stsmaxlb.  */
-    case 1040: value = 1109; break;    /* ldsmaxlh --> stsmaxlh.  */
-    case 1043: value = 1110; break;    /* ldsmaxl --> stsmaxl.  */
-    case 1045: value = 1111; break;    /* ldsminb --> stsminb.  */
-    case 1046: value = 1112; break;    /* ldsminh --> stsminh.  */
-    case 1047: value = 1113; break;    /* ldsmin --> stsmin.  */
-    case 1049: value = 1114; break;    /* ldsminlb --> stsminlb.  */
-    case 1052: value = 1115; break;    /* ldsminlh --> stsminlh.  */
-    case 1055: value = 1116; break;    /* ldsminl --> stsminl.  */
-    case 1057: value = 1117; break;    /* ldumaxb --> stumaxb.  */
-    case 1058: value = 1118; break;    /* ldumaxh --> stumaxh.  */
-    case 1059: value = 1119; break;    /* ldumax --> stumax.  */
-    case 1061: value = 1120; break;    /* ldumaxlb --> stumaxlb.  */
-    case 1064: value = 1121; break;    /* ldumaxlh --> stumaxlh.  */
-    case 1067: value = 1122; break;    /* ldumaxl --> stumaxl.  */
-    case 1069: value = 1123; break;    /* lduminb --> stuminb.  */
-    case 1070: value = 1124; break;    /* lduminh --> stuminh.  */
-    case 1071: value = 1125; break;    /* ldumin --> stumin.  */
-    case 1073: value = 1126; break;    /* lduminlb --> stuminlb.  */
-    case 1076: value = 1127; break;    /* lduminlh --> stuminlh.  */
-    case 1079: value = 1128; break;    /* lduminl --> stuminl.  */
-    case 1129: value = 1130; break;    /* movn --> mov.  */
-    case 1131: value = 1132; break;    /* movz --> mov.  */
-    case 1137: value = 1170; break;    /* hint --> autibsp.  */
-    case 1155: value = 1159; break;    /* sys --> tlbi.  */
-    case 1218: value = 1913; break;    /* and --> bic.  */
-    case 1220: value = 1201; break;    /* and --> mov.  */
-    case 1221: value = 1205; break;    /* ands --> movs.  */
-    case 1256: value = 1914; break;    /* cmpge --> cmple.  */
-    case 1259: value = 1917; break;    /* cmpgt --> cmplt.  */
-    case 1261: value = 1915; break;    /* cmphi --> cmplo.  */
-    case 1264: value = 1916; break;    /* cmphs --> cmpls.  */
-    case 1286: value = 1198; break;    /* cpy --> mov.  */
-    case 1287: value = 1200; break;    /* cpy --> mov.  */
-    case 1288: value = 1924; break;    /* cpy --> fmov.  */
-    case 1300: value = 1193; break;    /* dup --> mov.  */
-    case 1301: value = 1195; break;    /* dup --> mov.  */
-    case 1302: value = 1923; break;    /* dup --> fmov.  */
-    case 1303: value = 1196; break;    /* dupm --> mov.  */
-    case 1305: value = 1918; break;    /* eor --> eon.  */
-    case 1307: value = 1206; break;    /* eor --> not.  */
-    case 1308: value = 1207; break;    /* eors --> nots.  */
-    case 1313: value = 1919; break;    /* facge --> facle.  */
-    case 1314: value = 1920; break;    /* facgt --> faclt.  */
-    case 1323: value = 1921; break;    /* fcmge --> fcmle.  */
-    case 1325: value = 1922; break;    /* fcmgt --> fcmlt.  */
-    case 1331: value = 1190; break;    /* fcpy --> fmov.  */
-    case 1348: value = 1189; break;    /* fdup --> fmov.  */
-    case 1646: value = 1191; break;    /* orr --> mov.  */
-    case 1647: value = 1925; break;    /* orr --> orn.  */
-    case 1649: value = 1194; break;    /* orr --> mov.  */
-    case 1650: value = 1204; break;    /* orrs --> movs.  */
-    case 1706: value = 1199; break;    /* sel --> mov.  */
-    case 1707: value = 1202; break;    /* sel --> mov.  */
+    case 150: value = 151; break;      /* umov --> mov.  */
+    case 152: value = 153; break;      /* ins --> mov.  */
+    case 154: value = 155; break;      /* ins --> mov.  */
+    case 236: value = 237; break;      /* not --> mvn.  */
+    case 311: value = 312; break;      /* orr --> mov.  */
+    case 382: value = 383; break;      /* sshll --> sxtl.  */
+    case 384: value = 385; break;      /* sshll2 --> sxtl2.  */
+    case 406: value = 407; break;      /* ushll --> uxtl.  */
+    case 408: value = 409; break;      /* ushll2 --> uxtl2.  */
+    case 529: value = 530; break;      /* dup --> mov.  */
+    case 612: value = 617; break;      /* sbfm --> sxtw.  */
+    case 619: value = 621; break;      /* bfm --> bfc.  */
+    case 623: value = 627; break;      /* ubfm --> uxth.  */
+    case 657: value = 659; break;      /* csinc --> cset.  */
+    case 660: value = 662; break;      /* csinv --> csetm.  */
+    case 663: value = 664; break;      /* csneg --> cneg.  */
+    case 682: value = 682; break;      /* rev --> rev.  */
+    case 707: value = 708; break;      /* lslv --> lsl.  */
+    case 709: value = 710; break;      /* lsrv --> lsr.  */
+    case 711: value = 712; break;      /* asrv --> asr.  */
+    case 713: value = 714; break;      /* rorv --> ror.  */
+    case 724: value = 725; break;      /* madd --> mul.  */
+    case 726: value = 727; break;      /* msub --> mneg.  */
+    case 728: value = 729; break;      /* smaddl --> smull.  */
+    case 730: value = 731; break;      /* smsubl --> smnegl.  */
+    case 733: value = 734; break;      /* umaddl --> umull.  */
+    case 735: value = 736; break;      /* umsubl --> umnegl.  */
+    case 746: value = 747; break;      /* extr --> ror.  */
+    case 959: value = 960; break;      /* and --> bic.  */
+    case 961: value = 962; break;      /* orr --> mov.  */
+    case 964: value = 965; break;      /* ands --> tst.  */
+    case 968: value = 970; break;      /* orr --> uxtw.  */
+    case 971: value = 972; break;      /* orn --> mvn.  */
+    case 975: value = 976; break;      /* ands --> tst.  */
+    case 1006: value = 1102; break;    /* ldaddb --> staddb.  */
+    case 1007: value = 1103; break;    /* ldaddh --> staddh.  */
+    case 1008: value = 1104; break;    /* ldadd --> stadd.  */
+    case 1010: value = 1105; break;    /* ldaddlb --> staddlb.  */
+    case 1013: value = 1106; break;    /* ldaddlh --> staddlh.  */
+    case 1016: value = 1107; break;    /* ldaddl --> staddl.  */
+    case 1018: value = 1108; break;    /* ldclrb --> stclrb.  */
+    case 1019: value = 1109; break;    /* ldclrh --> stclrh.  */
+    case 1020: value = 1110; break;    /* ldclr --> stclr.  */
+    case 1022: value = 1111; break;    /* ldclrlb --> stclrlb.  */
+    case 1025: value = 1112; break;    /* ldclrlh --> stclrlh.  */
+    case 1028: value = 1113; break;    /* ldclrl --> stclrl.  */
+    case 1030: value = 1114; break;    /* ldeorb --> steorb.  */
+    case 1031: value = 1115; break;    /* ldeorh --> steorh.  */
+    case 1032: value = 1116; break;    /* ldeor --> steor.  */
+    case 1034: value = 1117; break;    /* ldeorlb --> steorlb.  */
+    case 1037: value = 1118; break;    /* ldeorlh --> steorlh.  */
+    case 1040: value = 1119; break;    /* ldeorl --> steorl.  */
+    case 1042: value = 1120; break;    /* ldsetb --> stsetb.  */
+    case 1043: value = 1121; break;    /* ldseth --> stseth.  */
+    case 1044: value = 1122; break;    /* ldset --> stset.  */
+    case 1046: value = 1123; break;    /* ldsetlb --> stsetlb.  */
+    case 1049: value = 1124; break;    /* ldsetlh --> stsetlh.  */
+    case 1052: value = 1125; break;    /* ldsetl --> stsetl.  */
+    case 1054: value = 1126; break;    /* ldsmaxb --> stsmaxb.  */
+    case 1055: value = 1127; break;    /* ldsmaxh --> stsmaxh.  */
+    case 1056: value = 1128; break;    /* ldsmax --> stsmax.  */
+    case 1058: value = 1129; break;    /* ldsmaxlb --> stsmaxlb.  */
+    case 1061: value = 1130; break;    /* ldsmaxlh --> stsmaxlh.  */
+    case 1064: value = 1131; break;    /* ldsmaxl --> stsmaxl.  */
+    case 1066: value = 1132; break;    /* ldsminb --> stsminb.  */
+    case 1067: value = 1133; break;    /* ldsminh --> stsminh.  */
+    case 1068: value = 1134; break;    /* ldsmin --> stsmin.  */
+    case 1070: value = 1135; break;    /* ldsminlb --> stsminlb.  */
+    case 1073: value = 1136; break;    /* ldsminlh --> stsminlh.  */
+    case 1076: value = 1137; break;    /* ldsminl --> stsminl.  */
+    case 1078: value = 1138; break;    /* ldumaxb --> stumaxb.  */
+    case 1079: value = 1139; break;    /* ldumaxh --> stumaxh.  */
+    case 1080: value = 1140; break;    /* ldumax --> stumax.  */
+    case 1082: value = 1141; break;    /* ldumaxlb --> stumaxlb.  */
+    case 1085: value = 1142; break;    /* ldumaxlh --> stumaxlh.  */
+    case 1088: value = 1143; break;    /* ldumaxl --> stumaxl.  */
+    case 1090: value = 1144; break;    /* lduminb --> stuminb.  */
+    case 1091: value = 1145; break;    /* lduminh --> stuminh.  */
+    case 1092: value = 1146; break;    /* ldumin --> stumin.  */
+    case 1094: value = 1147; break;    /* lduminlb --> stuminlb.  */
+    case 1097: value = 1148; break;    /* lduminlh --> stuminlh.  */
+    case 1100: value = 1149; break;    /* lduminl --> stuminl.  */
+    case 1150: value = 1151; break;    /* movn --> mov.  */
+    case 1152: value = 1153; break;    /* movz --> mov.  */
+    case 1158: value = 1191; break;    /* hint --> autibsp.  */
+    case 1176: value = 1180; break;    /* sys --> tlbi.  */
+    case 1239: value = 1973; break;    /* and --> bic.  */
+    case 1241: value = 1222; break;    /* and --> mov.  */
+    case 1242: value = 1226; break;    /* ands --> movs.  */
+    case 1277: value = 1974; break;    /* cmpge --> cmple.  */
+    case 1280: value = 1977; break;    /* cmpgt --> cmplt.  */
+    case 1282: value = 1975; break;    /* cmphi --> cmplo.  */
+    case 1285: value = 1976; break;    /* cmphs --> cmpls.  */
+    case 1307: value = 1219; break;    /* cpy --> mov.  */
+    case 1308: value = 1221; break;    /* cpy --> mov.  */
+    case 1309: value = 1984; break;    /* cpy --> fmov.  */
+    case 1321: value = 1214; break;    /* dup --> mov.  */
+    case 1322: value = 1216; break;    /* dup --> mov.  */
+    case 1323: value = 1983; break;    /* dup --> fmov.  */
+    case 1324: value = 1217; break;    /* dupm --> mov.  */
+    case 1326: value = 1978; break;    /* eor --> eon.  */
+    case 1328: value = 1227; break;    /* eor --> not.  */
+    case 1329: value = 1228; break;    /* eors --> nots.  */
+    case 1334: value = 1979; break;    /* facge --> facle.  */
+    case 1335: value = 1980; break;    /* facgt --> faclt.  */
+    case 1348: value = 1981; break;    /* fcmge --> fcmle.  */
+    case 1350: value = 1982; break;    /* fcmgt --> fcmlt.  */
+    case 1356: value = 1211; break;    /* fcpy --> fmov.  */
+    case 1379: value = 1210; break;    /* fdup --> fmov.  */
+    case 1694: value = 1212; break;    /* orr --> mov.  */
+    case 1695: value = 1985; break;    /* orr --> orn.  */
+    case 1697: value = 1215; break;    /* orr --> mov.  */
+    case 1698: value = 1225; break;    /* orrs --> movs.  */
+    case 1760: value = 1220; break;    /* sel --> mov.  */
+    case 1761: value = 1223; break;    /* sel --> mov.  */
     default: return NULL;
     }
 
     default: return NULL;
     }
 
@@ -18269,162 +19493,162 @@ aarch64_find_next_alias_opcode (const aarch64_opcode *opcode)
     case 23: value = 22; break;        /* neg --> sub.  */
     case 26: value = 25; break;        /* negs --> cmp.  */
     case 25: value = 24; break;        /* cmp --> subs.  */
     case 23: value = 22; break;        /* neg --> sub.  */
     case 26: value = 25; break;        /* negs --> cmp.  */
     case 25: value = 24; break;        /* cmp --> subs.  */
-    case 150: value = 149; break;      /* mov --> umov.  */
-    case 152: value = 151; break;      /* mov --> ins.  */
-    case 154: value = 153; break;      /* mov --> ins.  */
-    case 236: value = 235; break;      /* mvn --> not.  */
-    case 311: value = 310; break;      /* mov --> orr.  */
-    case 380: value = 379; break;      /* sxtl --> sshll.  */
-    case 382: value = 381; break;      /* sxtl2 --> sshll2.  */
-    case 404: value = 403; break;      /* uxtl --> ushll.  */
-    case 406: value = 405; break;      /* uxtl2 --> ushll2.  */
-    case 527: value = 526; break;      /* mov --> dup.  */
-    case 614: value = 613; break;      /* sxtw --> sxth.  */
-    case 613: value = 612; break;      /* sxth --> sxtb.  */
-    case 612: value = 615; break;      /* sxtb --> asr.  */
-    case 615: value = 611; break;      /* asr --> sbfx.  */
-    case 611: value = 610; break;      /* sbfx --> sbfiz.  */
-    case 610: value = 609; break;      /* sbfiz --> sbfm.  */
-    case 618: value = 619; break;      /* bfc --> bfxil.  */
-    case 619: value = 617; break;      /* bfxil --> bfi.  */
-    case 617: value = 616; break;      /* bfi --> bfm.  */
-    case 624: value = 623; break;      /* uxth --> uxtb.  */
-    case 623: value = 626; break;      /* uxtb --> lsr.  */
-    case 626: value = 625; break;      /* lsr --> lsl.  */
-    case 625: value = 622; break;      /* lsl --> ubfx.  */
-    case 622: value = 621; break;      /* ubfx --> ubfiz.  */
-    case 621: value = 620; break;      /* ubfiz --> ubfm.  */
-    case 644: value = 643; break;      /* cset --> cinc.  */
-    case 643: value = 642; break;      /* cinc --> csinc.  */
-    case 647: value = 646; break;      /* csetm --> cinv.  */
-    case 646: value = 645; break;      /* cinv --> csinv.  */
-    case 649: value = 648; break;      /* cneg --> csneg.  */
-    case 667: value = 668; break;      /* rev --> rev64.  */
-    case 693: value = 692; break;      /* lsl --> lslv.  */
-    case 695: value = 694; break;      /* lsr --> lsrv.  */
-    case 697: value = 696; break;      /* asr --> asrv.  */
-    case 699: value = 698; break;      /* ror --> rorv.  */
-    case 710: value = 709; break;      /* mul --> madd.  */
-    case 712: value = 711; break;      /* mneg --> msub.  */
-    case 714: value = 713; break;      /* smull --> smaddl.  */
-    case 716: value = 715; break;      /* smnegl --> smsubl.  */
-    case 719: value = 718; break;      /* umull --> umaddl.  */
-    case 721: value = 720; break;      /* umnegl --> umsubl.  */
-    case 732: value = 731; break;      /* ror --> extr.  */
-    case 939: value = 938; break;      /* bic --> and.  */
-    case 941: value = 940; break;      /* mov --> orr.  */
-    case 944: value = 943; break;      /* tst --> ands.  */
-    case 949: value = 948; break;      /* uxtw --> mov.  */
-    case 948: value = 947; break;      /* mov --> orr.  */
-    case 951: value = 950; break;      /* mvn --> orn.  */
-    case 955: value = 954; break;      /* tst --> ands.  */
-    case 1081: value = 985; break;     /* staddb --> ldaddb.  */
-    case 1082: value = 986; break;     /* staddh --> ldaddh.  */
-    case 1083: value = 987; break;     /* stadd --> ldadd.  */
-    case 1084: value = 989; break;     /* staddlb --> ldaddlb.  */
-    case 1085: value = 992; break;     /* staddlh --> ldaddlh.  */
-    case 1086: value = 995; break;     /* staddl --> ldaddl.  */
-    case 1087: value = 997; break;     /* stclrb --> ldclrb.  */
-    case 1088: value = 998; break;     /* stclrh --> ldclrh.  */
-    case 1089: value = 999; break;     /* stclr --> ldclr.  */
-    case 1090: value = 1001; break;    /* stclrlb --> ldclrlb.  */
-    case 1091: value = 1004; break;    /* stclrlh --> ldclrlh.  */
-    case 1092: value = 1007; break;    /* stclrl --> ldclrl.  */
-    case 1093: value = 1009; break;    /* steorb --> ldeorb.  */
-    case 1094: value = 1010; break;    /* steorh --> ldeorh.  */
-    case 1095: value = 1011; break;    /* steor --> ldeor.  */
-    case 1096: value = 1013; break;    /* steorlb --> ldeorlb.  */
-    case 1097: value = 1016; break;    /* steorlh --> ldeorlh.  */
-    case 1098: value = 1019; break;    /* steorl --> ldeorl.  */
-    case 1099: value = 1021; break;    /* stsetb --> ldsetb.  */
-    case 1100: value = 1022; break;    /* stseth --> ldseth.  */
-    case 1101: value = 1023; break;    /* stset --> ldset.  */
-    case 1102: value = 1025; break;    /* stsetlb --> ldsetlb.  */
-    case 1103: value = 1028; break;    /* stsetlh --> ldsetlh.  */
-    case 1104: value = 1031; break;    /* stsetl --> ldsetl.  */
-    case 1105: value = 1033; break;    /* stsmaxb --> ldsmaxb.  */
-    case 1106: value = 1034; break;    /* stsmaxh --> ldsmaxh.  */
-    case 1107: value = 1035; break;    /* stsmax --> ldsmax.  */
-    case 1108: value = 1037; break;    /* stsmaxlb --> ldsmaxlb.  */
-    case 1109: value = 1040; break;    /* stsmaxlh --> ldsmaxlh.  */
-    case 1110: value = 1043; break;    /* stsmaxl --> ldsmaxl.  */
-    case 1111: value = 1045; break;    /* stsminb --> ldsminb.  */
-    case 1112: value = 1046; break;    /* stsminh --> ldsminh.  */
-    case 1113: value = 1047; break;    /* stsmin --> ldsmin.  */
-    case 1114: value = 1049; break;    /* stsminlb --> ldsminlb.  */
-    case 1115: value = 1052; break;    /* stsminlh --> ldsminlh.  */
-    case 1116: value = 1055; break;    /* stsminl --> ldsminl.  */
-    case 1117: value = 1057; break;    /* stumaxb --> ldumaxb.  */
-    case 1118: value = 1058; break;    /* stumaxh --> ldumaxh.  */
-    case 1119: value = 1059; break;    /* stumax --> ldumax.  */
-    case 1120: value = 1061; break;    /* stumaxlb --> ldumaxlb.  */
-    case 1121: value = 1064; break;    /* stumaxlh --> ldumaxlh.  */
-    case 1122: value = 1067; break;    /* stumaxl --> ldumaxl.  */
-    case 1123: value = 1069; break;    /* stuminb --> lduminb.  */
-    case 1124: value = 1070; break;    /* stuminh --> lduminh.  */
-    case 1125: value = 1071; break;    /* stumin --> ldumin.  */
-    case 1126: value = 1073; break;    /* stuminlb --> lduminlb.  */
-    case 1127: value = 1076; break;    /* stuminlh --> lduminlh.  */
-    case 1128: value = 1079; break;    /* stuminl --> lduminl.  */
-    case 1130: value = 1129; break;    /* mov --> movn.  */
-    case 1132: value = 1131; break;    /* mov --> movz.  */
-    case 1170: value = 1169; break;    /* autibsp --> autibz.  */
-    case 1169: value = 1168; break;    /* autibz --> autiasp.  */
-    case 1168: value = 1167; break;    /* autiasp --> autiaz.  */
-    case 1167: value = 1166; break;    /* autiaz --> pacibsp.  */
-    case 1166: value = 1165; break;    /* pacibsp --> pacibz.  */
-    case 1165: value = 1164; break;    /* pacibz --> paciasp.  */
-    case 1164: value = 1163; break;    /* paciasp --> paciaz.  */
-    case 1163: value = 1150; break;    /* paciaz --> psb.  */
-    case 1150: value = 1149; break;    /* psb --> esb.  */
-    case 1149: value = 1148; break;    /* esb --> autib1716.  */
-    case 1148: value = 1147; break;    /* autib1716 --> autia1716.  */
-    case 1147: value = 1146; break;    /* autia1716 --> pacib1716.  */
-    case 1146: value = 1145; break;    /* pacib1716 --> pacia1716.  */
-    case 1145: value = 1144; break;    /* pacia1716 --> xpaclri.  */
-    case 1144: value = 1143; break;    /* xpaclri --> sevl.  */
-    case 1143: value = 1142; break;    /* sevl --> sev.  */
-    case 1142: value = 1141; break;    /* sev --> wfi.  */
-    case 1141: value = 1140; break;    /* wfi --> wfe.  */
-    case 1140: value = 1139; break;    /* wfe --> yield.  */
-    case 1139: value = 1138; break;    /* yield --> nop.  */
-    case 1138: value = 1137; break;    /* nop --> hint.  */
-    case 1159: value = 1158; break;    /* tlbi --> ic.  */
-    case 1158: value = 1157; break;    /* ic --> dc.  */
-    case 1157: value = 1156; break;    /* dc --> at.  */
-    case 1156: value = 1155; break;    /* at --> sys.  */
-    case 1913: value = 1218; break;    /* bic --> and.  */
-    case 1201: value = 1220; break;    /* mov --> and.  */
-    case 1205: value = 1221; break;    /* movs --> ands.  */
-    case 1914: value = 1256; break;    /* cmple --> cmpge.  */
-    case 1917: value = 1259; break;    /* cmplt --> cmpgt.  */
-    case 1915: value = 1261; break;    /* cmplo --> cmphi.  */
-    case 1916: value = 1264; break;    /* cmpls --> cmphs.  */
-    case 1198: value = 1286; break;    /* mov --> cpy.  */
-    case 1200: value = 1287; break;    /* mov --> cpy.  */
-    case 1924: value = 1203; break;    /* fmov --> mov.  */
-    case 1203: value = 1288; break;    /* mov --> cpy.  */
-    case 1193: value = 1300; break;    /* mov --> dup.  */
-    case 1195: value = 1192; break;    /* mov --> mov.  */
-    case 1192: value = 1301; break;    /* mov --> dup.  */
-    case 1923: value = 1197; break;    /* fmov --> mov.  */
-    case 1197: value = 1302; break;    /* mov --> dup.  */
-    case 1196: value = 1303; break;    /* mov --> dupm.  */
-    case 1918: value = 1305; break;    /* eon --> eor.  */
-    case 1206: value = 1307; break;    /* not --> eor.  */
-    case 1207: value = 1308; break;    /* nots --> eors.  */
-    case 1919: value = 1313; break;    /* facle --> facge.  */
-    case 1920: value = 1314; break;    /* faclt --> facgt.  */
-    case 1921: value = 1323; break;    /* fcmle --> fcmge.  */
-    case 1922: value = 1325; break;    /* fcmlt --> fcmgt.  */
-    case 1190: value = 1331; break;    /* fmov --> fcpy.  */
-    case 1189: value = 1348; break;    /* fmov --> fdup.  */
-    case 1191: value = 1646; break;    /* mov --> orr.  */
-    case 1925: value = 1647; break;    /* orn --> orr.  */
-    case 1194: value = 1649; break;    /* mov --> orr.  */
-    case 1204: value = 1650; break;    /* movs --> orrs.  */
-    case 1199: value = 1706; break;    /* mov --> sel.  */
-    case 1202: value = 1707; break;    /* mov --> sel.  */
+    case 151: value = 150; break;      /* mov --> umov.  */
+    case 153: value = 152; break;      /* mov --> ins.  */
+    case 155: value = 154; break;      /* mov --> ins.  */
+    case 237: value = 236; break;      /* mvn --> not.  */
+    case 312: value = 311; break;      /* mov --> orr.  */
+    case 383: value = 382; break;      /* sxtl --> sshll.  */
+    case 385: value = 384; break;      /* sxtl2 --> sshll2.  */
+    case 407: value = 406; break;      /* uxtl --> ushll.  */
+    case 409: value = 408; break;      /* uxtl2 --> ushll2.  */
+    case 530: value = 529; break;      /* mov --> dup.  */
+    case 617: value = 616; break;      /* sxtw --> sxth.  */
+    case 616: value = 615; break;      /* sxth --> sxtb.  */
+    case 615: value = 618; break;      /* sxtb --> asr.  */
+    case 618: value = 614; break;      /* asr --> sbfx.  */
+    case 614: value = 613; break;      /* sbfx --> sbfiz.  */
+    case 613: value = 612; break;      /* sbfiz --> sbfm.  */
+    case 621: value = 622; break;      /* bfc --> bfxil.  */
+    case 622: value = 620; break;      /* bfxil --> bfi.  */
+    case 620: value = 619; break;      /* bfi --> bfm.  */
+    case 627: value = 626; break;      /* uxth --> uxtb.  */
+    case 626: value = 629; break;      /* uxtb --> lsr.  */
+    case 629: value = 628; break;      /* lsr --> lsl.  */
+    case 628: value = 625; break;      /* lsl --> ubfx.  */
+    case 625: value = 624; break;      /* ubfx --> ubfiz.  */
+    case 624: value = 623; break;      /* ubfiz --> ubfm.  */
+    case 659: value = 658; break;      /* cset --> cinc.  */
+    case 658: value = 657; break;      /* cinc --> csinc.  */
+    case 662: value = 661; break;      /* csetm --> cinv.  */
+    case 661: value = 660; break;      /* cinv --> csinv.  */
+    case 664: value = 663; break;      /* cneg --> csneg.  */
+    case 682: value = 683; break;      /* rev --> rev64.  */
+    case 708: value = 707; break;      /* lsl --> lslv.  */
+    case 710: value = 709; break;      /* lsr --> lsrv.  */
+    case 712: value = 711; break;      /* asr --> asrv.  */
+    case 714: value = 713; break;      /* ror --> rorv.  */
+    case 725: value = 724; break;      /* mul --> madd.  */
+    case 727: value = 726; break;      /* mneg --> msub.  */
+    case 729: value = 728; break;      /* smull --> smaddl.  */
+    case 731: value = 730; break;      /* smnegl --> smsubl.  */
+    case 734: value = 733; break;      /* umull --> umaddl.  */
+    case 736: value = 735; break;      /* umnegl --> umsubl.  */
+    case 747: value = 746; break;      /* ror --> extr.  */
+    case 960: value = 959; break;      /* bic --> and.  */
+    case 962: value = 961; break;      /* mov --> orr.  */
+    case 965: value = 964; break;      /* tst --> ands.  */
+    case 970: value = 969; break;      /* uxtw --> mov.  */
+    case 969: value = 968; break;      /* mov --> orr.  */
+    case 972: value = 971; break;      /* mvn --> orn.  */
+    case 976: value = 975; break;      /* tst --> ands.  */
+    case 1102: value = 1006; break;    /* staddb --> ldaddb.  */
+    case 1103: value = 1007; break;    /* staddh --> ldaddh.  */
+    case 1104: value = 1008; break;    /* stadd --> ldadd.  */
+    case 1105: value = 1010; break;    /* staddlb --> ldaddlb.  */
+    case 1106: value = 1013; break;    /* staddlh --> ldaddlh.  */
+    case 1107: value = 1016; break;    /* staddl --> ldaddl.  */
+    case 1108: value = 1018; break;    /* stclrb --> ldclrb.  */
+    case 1109: value = 1019; break;    /* stclrh --> ldclrh.  */
+    case 1110: value = 1020; break;    /* stclr --> ldclr.  */
+    case 1111: value = 1022; break;    /* stclrlb --> ldclrlb.  */
+    case 1112: value = 1025; break;    /* stclrlh --> ldclrlh.  */
+    case 1113: value = 1028; break;    /* stclrl --> ldclrl.  */
+    case 1114: value = 1030; break;    /* steorb --> ldeorb.  */
+    case 1115: value = 1031; break;    /* steorh --> ldeorh.  */
+    case 1116: value = 1032; break;    /* steor --> ldeor.  */
+    case 1117: value = 1034; break;    /* steorlb --> ldeorlb.  */
+    case 1118: value = 1037; break;    /* steorlh --> ldeorlh.  */
+    case 1119: value = 1040; break;    /* steorl --> ldeorl.  */
+    case 1120: value = 1042; break;    /* stsetb --> ldsetb.  */
+    case 1121: value = 1043; break;    /* stseth --> ldseth.  */
+    case 1122: value = 1044; break;    /* stset --> ldset.  */
+    case 1123: value = 1046; break;    /* stsetlb --> ldsetlb.  */
+    case 1124: value = 1049; break;    /* stsetlh --> ldsetlh.  */
+    case 1125: value = 1052; break;    /* stsetl --> ldsetl.  */
+    case 1126: value = 1054; break;    /* stsmaxb --> ldsmaxb.  */
+    case 1127: value = 1055; break;    /* stsmaxh --> ldsmaxh.  */
+    case 1128: value = 1056; break;    /* stsmax --> ldsmax.  */
+    case 1129: value = 1058; break;    /* stsmaxlb --> ldsmaxlb.  */
+    case 1130: value = 1061; break;    /* stsmaxlh --> ldsmaxlh.  */
+    case 1131: value = 1064; break;    /* stsmaxl --> ldsmaxl.  */
+    case 1132: value = 1066; break;    /* stsminb --> ldsminb.  */
+    case 1133: value = 1067; break;    /* stsminh --> ldsminh.  */
+    case 1134: value = 1068; break;    /* stsmin --> ldsmin.  */
+    case 1135: value = 1070; break;    /* stsminlb --> ldsminlb.  */
+    case 1136: value = 1073; break;    /* stsminlh --> ldsminlh.  */
+    case 1137: value = 1076; break;    /* stsminl --> ldsminl.  */
+    case 1138: value = 1078; break;    /* stumaxb --> ldumaxb.  */
+    case 1139: value = 1079; break;    /* stumaxh --> ldumaxh.  */
+    case 1140: value = 1080; break;    /* stumax --> ldumax.  */
+    case 1141: value = 1082; break;    /* stumaxlb --> ldumaxlb.  */
+    case 1142: value = 1085; break;    /* stumaxlh --> ldumaxlh.  */
+    case 1143: value = 1088; break;    /* stumaxl --> ldumaxl.  */
+    case 1144: value = 1090; break;    /* stuminb --> lduminb.  */
+    case 1145: value = 1091; break;    /* stuminh --> lduminh.  */
+    case 1146: value = 1092; break;    /* stumin --> ldumin.  */
+    case 1147: value = 1094; break;    /* stuminlb --> lduminlb.  */
+    case 1148: value = 1097; break;    /* stuminlh --> lduminlh.  */
+    case 1149: value = 1100; break;    /* stuminl --> lduminl.  */
+    case 1151: value = 1150; break;    /* mov --> movn.  */
+    case 1153: value = 1152; break;    /* mov --> movz.  */
+    case 1191: value = 1190; break;    /* autibsp --> autibz.  */
+    case 1190: value = 1189; break;    /* autibz --> autiasp.  */
+    case 1189: value = 1188; break;    /* autiasp --> autiaz.  */
+    case 1188: value = 1187; break;    /* autiaz --> pacibsp.  */
+    case 1187: value = 1186; break;    /* pacibsp --> pacibz.  */
+    case 1186: value = 1185; break;    /* pacibz --> paciasp.  */
+    case 1185: value = 1184; break;    /* paciasp --> paciaz.  */
+    case 1184: value = 1171; break;    /* paciaz --> psb.  */
+    case 1171: value = 1170; break;    /* psb --> esb.  */
+    case 1170: value = 1169; break;    /* esb --> autib1716.  */
+    case 1169: value = 1168; break;    /* autib1716 --> autia1716.  */
+    case 1168: value = 1167; break;    /* autia1716 --> pacib1716.  */
+    case 1167: value = 1166; break;    /* pacib1716 --> pacia1716.  */
+    case 1166: value = 1165; break;    /* pacia1716 --> xpaclri.  */
+    case 1165: value = 1164; break;    /* xpaclri --> sevl.  */
+    case 1164: value = 1163; break;    /* sevl --> sev.  */
+    case 1163: value = 1162; break;    /* sev --> wfi.  */
+    case 1162: value = 1161; break;    /* wfi --> wfe.  */
+    case 1161: value = 1160; break;    /* wfe --> yield.  */
+    case 1160: value = 1159; break;    /* yield --> nop.  */
+    case 1159: value = 1158; break;    /* nop --> hint.  */
+    case 1180: value = 1179; break;    /* tlbi --> ic.  */
+    case 1179: value = 1178; break;    /* ic --> dc.  */
+    case 1178: value = 1177; break;    /* dc --> at.  */
+    case 1177: value = 1176; break;    /* at --> sys.  */
+    case 1973: value = 1239; break;    /* bic --> and.  */
+    case 1222: value = 1241; break;    /* mov --> and.  */
+    case 1226: value = 1242; break;    /* movs --> ands.  */
+    case 1974: value = 1277; break;    /* cmple --> cmpge.  */
+    case 1977: value = 1280; break;    /* cmplt --> cmpgt.  */
+    case 1975: value = 1282; break;    /* cmplo --> cmphi.  */
+    case 1976: value = 1285; break;    /* cmpls --> cmphs.  */
+    case 1219: value = 1307; break;    /* mov --> cpy.  */
+    case 1221: value = 1308; break;    /* mov --> cpy.  */
+    case 1984: value = 1224; break;    /* fmov --> mov.  */
+    case 1224: value = 1309; break;    /* mov --> cpy.  */
+    case 1214: value = 1321; break;    /* mov --> dup.  */
+    case 1216: value = 1213; break;    /* mov --> mov.  */
+    case 1213: value = 1322; break;    /* mov --> dup.  */
+    case 1983: value = 1218; break;    /* fmov --> mov.  */
+    case 1218: value = 1323; break;    /* mov --> dup.  */
+    case 1217: value = 1324; break;    /* mov --> dupm.  */
+    case 1978: value = 1326; break;    /* eon --> eor.  */
+    case 1227: value = 1328; break;    /* not --> eor.  */
+    case 1228: value = 1329; break;    /* nots --> eors.  */
+    case 1979: value = 1334; break;    /* facle --> facge.  */
+    case 1980: value = 1335; break;    /* faclt --> facgt.  */
+    case 1981: value = 1348; break;    /* fcmle --> fcmge.  */
+    case 1982: value = 1350; break;    /* fcmlt --> fcmgt.  */
+    case 1211: value = 1356; break;    /* fmov --> fcpy.  */
+    case 1210: value = 1379; break;    /* fmov --> fdup.  */
+    case 1212: value = 1694; break;    /* mov --> orr.  */
+    case 1985: value = 1695; break;    /* orn --> orr.  */
+    case 1215: value = 1697; break;    /* mov --> orr.  */
+    case 1225: value = 1698; break;    /* movs --> orrs.  */
+    case 1220: value = 1760; break;    /* mov --> sel.  */
+    case 1223: value = 1761; break;    /* mov --> sel.  */
     default: return NULL;
     }
 
     default: return NULL;
     }
 
@@ -18463,29 +19687,28 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 26:
     case 27:
     case 28:
     case 26:
     case 27:
     case 28:
-    case 36:
-    case 37:
-    case 140:
-    case 141:
-    case 142:
-    case 143:
-    case 144:
-    case 145:
-    case 146:
-    case 147:
-    case 148:
-    case 149:
-    case 162:
-    case 163:
-    case 164:
-    case 165:
-    case 166:
-    case 167:
-    case 168:
-    case 169:
-    case 170:
-    case 171:
+    case 29:
+    case 151:
+    case 152:
+    case 153:
+    case 154:
+    case 155:
+    case 156:
+    case 157:
+    case 158:
+    case 159:
+    case 160:
+    case 173:
     case 174:
     case 174:
+    case 175:
+    case 176:
+    case 177:
+    case 178:
+    case 179:
+    case 180:
+    case 181:
+    case 185:
+    case 188:
       return aarch64_ext_regno (self, info, code, inst);
     case 8:
       return aarch64_ext_regrt_sysins (self, info, code, inst);
       return aarch64_ext_regno (self, info, code, inst);
     case 8:
       return aarch64_ext_regrt_sysins (self, info, code, inst);
@@ -18497,21 +19720,23 @@ aarch64_extract_operand (const aarch64_operand *self,
       return aarch64_ext_reg_shifted (self, info, code, inst);
     case 19:
       return aarch64_ext_ft (self, info, code, inst);
       return aarch64_ext_reg_shifted (self, info, code, inst);
     case 19:
       return aarch64_ext_ft (self, info, code, inst);
-    case 29:
     case 30:
     case 31:
     case 30:
     case 31:
-      return aarch64_ext_reglane (self, info, code, inst);
     case 32:
     case 32:
-      return aarch64_ext_reglist (self, info, code, inst);
+    case 190:
+      return aarch64_ext_reglane (self, info, code, inst);
     case 33:
     case 33:
-      return aarch64_ext_ldst_reglist (self, info, code, inst);
+      return aarch64_ext_reglist (self, info, code, inst);
     case 34:
     case 34:
-      return aarch64_ext_ldst_reglist_r (self, info, code, inst);
+      return aarch64_ext_ldst_reglist (self, info, code, inst);
     case 35:
     case 35:
+      return aarch64_ext_ldst_reglist_r (self, info, code, inst);
+    case 36:
       return aarch64_ext_ldst_elemlist (self, info, code, inst);
       return aarch64_ext_ldst_elemlist (self, info, code, inst);
+    case 37:
     case 38:
     case 38:
-    case 48:
-    case 49:
+    case 39:
+    case 40:
     case 50:
     case 51:
     case 52:
     case 50:
     case 51:
     case 52:
@@ -18523,102 +19748,108 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 58:
     case 59:
     case 60:
     case 58:
     case 59:
     case 60:
-    case 68:
-    case 69:
-    case 70:
-    case 71:
-    case 72:
-    case 137:
-    case 139:
-    case 154:
-    case 155:
-    case 156:
-    case 157:
-    case 158:
-    case 159:
-    case 160:
-    case 161:
+    case 61:
+    case 62:
+    case 63:
+    case 74:
+    case 75:
+    case 76:
+    case 77:
+    case 78:
+    case 148:
+    case 150:
+    case 165:
+    case 166:
+    case 167:
+    case 168:
+    case 169:
+    case 170:
+    case 171:
+    case 172:
       return aarch64_ext_imm (self, info, code, inst);
       return aarch64_ext_imm (self, info, code, inst);
-    case 39:
-    case 40:
-      return aarch64_ext_advsimd_imm_shift (self, info, code, inst);
     case 41:
     case 42:
     case 41:
     case 42:
+      return aarch64_ext_advsimd_imm_shift (self, info, code, inst);
     case 43:
     case 43:
-      return aarch64_ext_advsimd_imm_modified (self, info, code, inst);
     case 44:
     case 44:
+    case 45:
+      return aarch64_ext_advsimd_imm_modified (self, info, code, inst);
+    case 46:
       return aarch64_ext_shll_imm (self, info, code, inst);
       return aarch64_ext_shll_imm (self, info, code, inst);
-    case 47:
-    case 130:
+    case 49:
+    case 139:
       return aarch64_ext_fpimm (self, info, code, inst);
       return aarch64_ext_fpimm (self, info, code, inst);
-    case 61:
-    case 135:
+    case 64:
+    case 146:
       return aarch64_ext_limm (self, info, code, inst);
       return aarch64_ext_limm (self, info, code, inst);
-    case 62:
+    case 65:
       return aarch64_ext_aimm (self, info, code, inst);
       return aarch64_ext_aimm (self, info, code, inst);
-    case 63:
-      return aarch64_ext_imm_half (self, info, code, inst);
-    case 64:
-      return aarch64_ext_fbits (self, info, code, inst);
     case 66:
     case 66:
+      return aarch64_ext_imm_half (self, info, code, inst);
     case 67:
     case 67:
-      return aarch64_ext_cond (self, info, code, inst);
+      return aarch64_ext_fbits (self, info, code, inst);
+    case 69:
+    case 70:
+    case 144:
+      return aarch64_ext_imm_rotate2 (self, info, code, inst);
+    case 71:
+    case 143:
+      return aarch64_ext_imm_rotate1 (self, info, code, inst);
+    case 72:
     case 73:
     case 73:
+      return aarch64_ext_cond (self, info, code, inst);
     case 79:
     case 79:
+    case 86:
       return aarch64_ext_addr_simple (self, info, code, inst);
       return aarch64_ext_addr_simple (self, info, code, inst);
-    case 74:
-      return aarch64_ext_addr_regoff (self, info, code, inst);
-    case 75:
-    case 76:
-    case 77:
-      return aarch64_ext_addr_simm (self, info, code, inst);
-    case 78:
-      return aarch64_ext_addr_uimm12 (self, info, code, inst);
     case 80:
     case 80:
-      return aarch64_ext_simd_addr_post (self, info, code, inst);
+      return aarch64_ext_addr_regoff (self, info, code, inst);
     case 81:
     case 81:
-      return aarch64_ext_sysreg (self, info, code, inst);
     case 82:
     case 82:
-      return aarch64_ext_pstatefield (self, info, code, inst);
     case 83:
     case 83:
+      return aarch64_ext_addr_simm (self, info, code, inst);
     case 84:
     case 84:
+      return aarch64_ext_addr_simm10 (self, info, code, inst);
     case 85:
     case 85:
-    case 86:
-      return aarch64_ext_sysins_op (self, info, code, inst);
+      return aarch64_ext_addr_uimm12 (self, info, code, inst);
     case 87:
     case 87:
+      return aarch64_ext_addr_offset (self, info, code, inst);
     case 88:
     case 88:
-      return aarch64_ext_barrier (self, info, code, inst);
+      return aarch64_ext_simd_addr_post (self, info, code, inst);
     case 89:
     case 89:
-      return aarch64_ext_prfop (self, info, code, inst);
+      return aarch64_ext_sysreg (self, info, code, inst);
     case 90:
     case 90:
-      return aarch64_ext_hint (self, info, code, inst);
+      return aarch64_ext_pstatefield (self, info, code, inst);
     case 91:
     case 92:
     case 93:
     case 94:
     case 91:
     case 92:
     case 93:
     case 94:
-      return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst);
+      return aarch64_ext_sysins_op (self, info, code, inst);
     case 95:
     case 95:
-      return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst);
     case 96:
     case 96:
-      return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst);
+      return aarch64_ext_barrier (self, info, code, inst);
     case 97:
     case 97:
+      return aarch64_ext_prfop (self, info, code, inst);
     case 98:
     case 98:
+      return aarch64_ext_hint (self, info, code, inst);
     case 99:
     case 99:
+      return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst);
     case 100:
     case 100:
-      return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst);
     case 101:
     case 102:
     case 103:
     case 101:
     case 102:
     case 103:
+      return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst);
     case 104:
     case 104:
+      return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst);
     case 105:
     case 105:
+      return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst);
     case 106:
     case 107:
     case 108:
     case 109:
     case 106:
     case 107:
     case 108:
     case 109:
+      return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst);
     case 110:
     case 111:
     case 112:
     case 110:
     case 111:
     case 112:
-      return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst);
     case 113:
     case 114:
     case 115:
     case 113:
     case 114:
     case 115:
@@ -18627,44 +19858,58 @@ aarch64_extract_operand (const aarch64_operand *self,
     case 118:
     case 119:
     case 120:
     case 118:
     case 119:
     case 120:
-      return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst);
     case 121:
     case 121:
+      return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst);
     case 122:
     case 123:
     case 124:
     case 122:
     case 123:
     case 124:
-      return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst);
     case 125:
     case 125:
-      return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst);
     case 126:
     case 126:
-      return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst);
     case 127:
     case 127:
-      return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst);
     case 128:
     case 128:
-      return aarch64_ext_sve_aimm (self, info, code, inst);
     case 129:
     case 129:
-      return aarch64_ext_sve_asimm (self, info, code, inst);
+      return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst);
+    case 130:
     case 131:
     case 131:
-      return aarch64_ext_sve_float_half_one (self, info, code, inst);
     case 132:
     case 132:
-      return aarch64_ext_sve_float_half_two (self, info, code, inst);
     case 133:
     case 133:
-      return aarch64_ext_sve_float_zero_one (self, info, code, inst);
+      return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst);
     case 134:
     case 134:
-      return aarch64_ext_inv_limm (self, info, code, inst);
+      return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst);
+    case 135:
+      return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst);
     case 136:
     case 136:
-      return aarch64_ext_sve_limm_mov (self, info, code, inst);
+      return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst);
+    case 137:
+      return aarch64_ext_sve_aimm (self, info, code, inst);
     case 138:
     case 138:
+      return aarch64_ext_sve_asimm (self, info, code, inst);
+    case 140:
+      return aarch64_ext_sve_float_half_one (self, info, code, inst);
+    case 141:
+      return aarch64_ext_sve_float_half_two (self, info, code, inst);
+    case 142:
+      return aarch64_ext_sve_float_zero_one (self, info, code, inst);
+    case 145:
+      return aarch64_ext_inv_limm (self, info, code, inst);
+    case 147:
+      return aarch64_ext_sve_limm_mov (self, info, code, inst);
+    case 149:
       return aarch64_ext_sve_scale (self, info, code, inst);
       return aarch64_ext_sve_scale (self, info, code, inst);
-    case 150:
-    case 151:
+    case 161:
+    case 162:
       return aarch64_ext_sve_shlimm (self, info, code, inst);
       return aarch64_ext_sve_shlimm (self, info, code, inst);
-    case 152:
-    case 153:
+    case 163:
+    case 164:
       return aarch64_ext_sve_shrimm (self, info, code, inst);
       return aarch64_ext_sve_shrimm (self, info, code, inst);
-    case 172:
+    case 182:
+    case 183:
+    case 184:
+      return aarch64_ext_sve_quad_index (self, info, code, inst);
+    case 186:
       return aarch64_ext_sve_index (self, info, code, inst);
       return aarch64_ext_sve_index (self, info, code, inst);
-    case 173:
-    case 175:
+    case 187:
+    case 189:
       return aarch64_ext_sve_reglist (self, info, code, inst);
     default: assert (0); abort ();
     }
       return aarch64_ext_sve_reglist (self, info, code, inst);
     default: assert (0); abort ();
     }
This page took 0.530506 seconds and 4 git commands to generate.